`

Java 日期近1年、几月、几天

    博客分类:
  • Java
阅读更多
一個月
Date date1 = new Date();
        int year=date1.getYear();
        int month=date1.getMonth();
        int day=date1.getDate();
        if (month == 0) {
            date1.setYear(year- 1);
            date1.setMonth(11);
        } else {
            if(month==2 && day>28){
                date1.setMonth(month-1);
                date1.setDate(28);
            }else if(month == 4 || month == 6 || month==7 || month == 9 || month == 11){
                date1.setMonth(month - 1);
                if(day>30){
                    date1.setDate(30);
                }
            }else{
                date1.setMonth(month - 1);
            }
           
        }
三個月
        int year=date1.getYear();
        int month=date1.getMonth();
        int day=date1.getDate();
        if(month>=3){
            if(month==4 && day>28){
                date1.setDate(28);
                date1.setMonth(month-3);
            }else if( (month == 6 || month == 11) && day>30){
                date1.setDate(30);
                date1.setMonth(month-3);
            }else{
                date1.setMonth(month-3);
            }
        }else{
            if(month==1){
                if(day>30){
                    date1.setDate(30);
                }
            }
                date1.setMonth(9+month);
                date1.setYear(year-1);
        }
半年
        int year=date1.getYear();
        int month=date1.getMonth();
        int day=date1.getDate();
        if(month>=6){
            if(month==7 && day>28){
                date1.setDate(28);
                date1.setMonth(month-6);
            }else if( (month == 9 || month == 11) && day>30){
                date1.setDate(30);
                date1.setMonth(month-6);
            }else{
                date1.setMonth(month-6);
            }
        }else{
            if(month==2 || month==4){
                if(day>30){
                    date1.setDate(30);
                }
            }
                date1.setMonth(6+month);
                date1.setYear(year-1);
        }
七天
        int year=date1.getYear();
        int month=date1.getMonth();
        int day=date1.getDate();

        if (day > 7) {
            date1.setDate(day-7);
        } else {
            if (month == 0) {
                date1.setYear(year-1);
                date1.setMonth(11);
                date1.setDate(24+day);
            } else if (month==1 || month == 3 || month == 5 || month==7 || month == 8 || month == 10) {
                date1.setMonth(month-1);
                date1.setDate(24+day);
            } else if (month == 2) {
                if (year % 4 == 0) {
                date1.setMonth(month-1);
                date1.setDate(22+day);
                } else {
                date1.setMonth(month-1);
                date1.setDate(21+day);
                }
            } else {
                date1.setMonth(month-1);
                date1.setDate(23+day);
            }
        }

三天
        if (day > 3) {
            date1.setDate(day-3);
        } else {
            if (month == 0) {
                date1.setYear(year-1);
                date1.setMonth(11);
                date1.setDate(28+day);
            } else if (month==1 || month == 3 || month == 5 || month==7 || month == 8 || month == 10) {
                date1.setMonth(month-1);
                date1.setDate(28+day);
            } else if (month == 2) {
                if (year % 4 == 0) {
                date1.setMonth(month-1);
                date1.setDate(26+day);
                } else {
                date1.setMonth(month-1);
                date1.setDate(25+day);
                }
            } else {
                date1.setMonth(month-1);
                date1.setDate(27+day);
            }
        }

一年

        if(date.getMonth()==1 && date.getDate()==29){
            date.setDate(28);
            date.setYear(date.getYear()-1);
        }else{
        date.setYear(date.getYear() - 1);
        }



分享到:
评论

相关推荐

    java获取今天、昨天、近一周、本周、本月时间段

    java获取今天、昨天、近一周、近两周、近三周、近一月、近两月、近三月、近半年、本周、上周、本月、上月时间段

    java小实验:显示每月第一天是星期几

    显示每月第一天是星期几 编写程序,提示用户输入年份和代表该年第一天是星期几的数字...例如,如果用户输入的年份是2005和代表2005年1月1日为星期六的6,程序应该显示2005年每月第一天是星期几(注意:0表示星期天)。

    Calendar1.java

    1、确定该年第一天是星期几:通过查阅资料,蔡勒公式 可以推出日期对应的星期。这部分写在getFirstDayWeek()函数里。 2、闰年判定:其次要判断闰年来确定2月的天数,方法为能被4整除且不被100整除或者能被400整除...

    日期类MyDate代码

    1. 编写一个Application程序MyDate.java,建立日期类,接受用户输入的年、月、日,完成日期增加若干天得到新的日期,日期推前若干天得到新的日期,日期与日期间相差多少天的计算。

    编写Java程序随机输入日期计算星期几,打印任意一年的日历

    已知,1900年1月1日是星期1,用户随机输入年月日,计算星期几 实现思路: 一、知道1900年1月1日为星期一,求输入的年份月份与1900年1月1日相隔的总天数。闰年366天,平年365天。 通过运算符实现闰年判断的条件: ...

    最精确公历转农历java源码

    该程序可将1800.1.1--2100.10.1的任意公历日期转为农历. 该程序包含了1800-2100年,共300年 程序采用java语言编写. 公历考虑范围为 公元1--9999年,考虑了3200年闰年问题. 农历考虑范围为 公元1800--2100年,考虑了...

    儒略日和公历相互转化程序:JulianDateConverter.java

    因为在科研数值计算的过程中,常常会遇到需要将日期转化为儒略日(一年中的第几天)的情况,尤其是在气象、天文和卫星轨道计算等领域,在计算太阳辐射时,也需要用到儒略日,因为地球围绕太阳公转的原因,地球中心与...

    2023年日历(标记工作日,节假日,调休,周末),计算两个日期相差的工作日天数

    1、excel表为2023年日历数据,并且备注工作日、周末,调休、节假日类型,可导入数据库。 2、SQL文件为2023年所有日期的插入SQL,并标注:工作日、法定节假日、节假日调休的上班日 、周末的类型。 3、已重新更正5月6...

    JAVA万年历课程设计报告.doc

    然后判断输入的年是否为定义年,若是,令总天 数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到 要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再 使总天数...

    用java编写的万年历程序

    //计算从1900年到今年1月1日的天数 static int DAY2=0; //计算从今年1月1日到本月1日的天数 static int Month_Day=0; //计算本月的天数 static int Y=1900; //代表起始年,1900年 public static void main...

    JAVA万年历课程设计报告(1).doc

    然后判断输入的年是否为定义年,若是,令总天 数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到 要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再 使总天数...

    JAVA面试题最全集

    如何获取某个日期是当月的最后一天 如何格式化日期 5.数组和集合 6.文件和目录(I/O)操作 如何列出某个目录下的所有文件 如何列出某个目录下的所有子目录 判断一个文件或目录是否存在 如何读写文件 7.Java...

    calendar.java

    容易推算得到:公元0年的生肖为Monkey,公元1年的生肖为Rooster。 【样例输入】2017-3-10 【样例输出】 The Chinese Zodiac of 2017 is Rooster The monthly calendar is: 11.png Today is Friday The date is Fri ...

    DateUtil.java

    方法一是getWeekDays() 返回的数据为当天以及之前的六天日期,共七天(时间格式为:年-月-日 星期几); 方法二是getTwoDaysDay(String dateStart,String dateEnd) 返回的数据是任意两个日期之间的时间,参数...

    Java 2实用教程(第三版)实验指导与习题解答

    上机实践1 初识Java 4 实验1 一个简单的应用程序 4 实验2 一个简单的Java Applet程序 4 实验3 联合编译 5 上机实践2 基本数据类型与控制语句 6 实验1 输出希腊字母表 6 实验2 回文数 6 实验3 猜数字游戏 8 上机实践3...

    java上机报告1——日历1

    1. 根据用户输入的年份输出该年日历 2. 根据用户输入的日期,输出该天星期 1. 定义某一天是星期几(如:定义 1900 年 1 月 1 日为星期一) 2.

    java面试题大全(2012版)

    1. 判断第二个日期比第一个日期大 82 2. 用table显示n条记录,每3行换一次颜色,即1,2,3用红色字体,4,5,6用绿色字体,7,8,9用红颜色字体。 83 3、HTML 的 form 提交之前如何验证数值文本框的内容全部为数字? ...

    java课程设计报告---万年历.doc

    否则,用累加法计算出定义年到输入年之间 " "的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月" "是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算 " "出从定义年一月一日到...

    C# 最全的日期正则表达式,没有之一

    前几天在CSDN多个版块看到需要日期正则的帖子,所以整理了这篇文章,和大家一起讨论交流,如有遗漏或错误的地方,还请大家指正。 日期正则一般是对格式有要求,且数据不是直接由用户输入时使用。因应用场景的不同,...

Global site tag (gtag.js) - Google Analytics