`
yadsun
  • 浏览: 181338 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

根据当前日期算前一年、前一月、前一天(java基础)

阅读更多
   问题的本身没有什么难度,但是要想一下子找到一个现成的方法还真不是那么容易,本来以为java.util.Date中会有方法结果找了半天没找到,最后还是在Calendar中找到了,记下别忘了!!

核心:使用Calendar的add(int field, int amount)方法
 Calendar ca = Calendar.getInstance();//得到一个Calendar的实例
 ca.setTime(new Date());   //设置时间为当前时间
 ca.add(Calendar.YEAR, -1); //年份减1
 Date lastMonth = ca.getTime(); //结果

同样,类似的,求前一月ca.add(Calendar.MONTH, -1),前一天ca.add(Calendar.DATE, -1)

=================补充=================
有朋友说“月份这样做是有问题的,比如当前时间是2009-12-31,你在月份上减1变成了2009-12-1”,我试了一下没有出现这样的问题,不过印象中好像确实有遇到过这样的情况,代码是怎么写的已经记不清了
Calendar ca = Calendar.getInstance();//得到一个Calendar的实例 
		ca.set(2009, 11, 31);//月份是从0开始的,所以11表示12月
		Date now = ca.getTime();
		ca.add(Calendar.MONTH, -1); //月份减1   
		Date lastMonth = ca.getTime(); //结果  
		SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
		System.out.println(sf.format(now));
		System.out.println(sf.format(lastMonth));

		打印出来的结果是: 2009-12-31
		                2009-11-30



希望踩的朋友也能留下宝贵批评意见,也能使我从中有所收获不断进步,不甚感激!


震撼手感 镭射防伪 Levi's钱包 李维斯钱包 软牛皮长款钱包
09新款¥Levi's李维斯牛皮钱包/卡包/男士钱包 情侣款 新年礼物
双冠信誉-诺基亚5800手机-触摸屏手机-大陆行货-全国联保2299.0元


16
6
分享到:
评论
11 楼 dongdong12345_ 2017-05-18  
感谢楼主,帮到了我
10 楼 raiha 2010-01-15  
基础知识+1
9 楼 pubx 2010-01-14  
我又试了一下,你这样写应该是对的!我之前说的是在调用set的情况下会这样。
8 楼 yadsun 2010-01-14  
wmbjhlj 写道
闰年

2004年3月30日
减去一个月会怎么样?

这种情况肯定考虑到了,不信你试试,我试了是对的2004-2-29
7 楼 wmbjhlj 2010-01-14  
闰年

2004年3月30日
减去一个月会怎么样?
6 楼 yadsun 2010-01-14  
pubx 写道
月份这样做是有问题的,比如当前时间是2009-12-31,你在月份上减1变成了2009-12-1哈!

我没有发现这样的问题啊,请贴出你的代码交流一下吧,顺便提醒如果是手动设值的话要注意一下月份是从0开始的
5 楼 pubx 2010-01-14  
月份这样做是有问题的,比如当前时间是2009-12-31,你在月份上减1变成了2009-12-1哈!
4 楼 conservatism 2010-01-14  
正好用得上,谢谢lz
3 楼 yadsun 2010-01-14  
不知道踩的朋友是什么心态??麻烦踩的朋友能留下只言片语,也能使我从中有所收获,不甚感激
2 楼 yadsun 2010-01-14  
kuchaguangjie 写道
j2se 基础知识

是基础但容易忘
1 楼 kuchaguangjie 2010-01-14  
j2se 基础知识

相关推荐

    根据输入的日期获取所属季度

    本篇文档主要介绍了一个Java程序,该程序的功能是根据用户输入的日期,计算出该日期所处的季度。这是一个典型的日期处理场景,在各种业务系统中非常常见,比如财务报表、数据分析等。 #### 二、关键概念与术语解释 ...

    Java编程输入两个年月日,(1)判断两个日期是否相同,并且将相差的天数显示出来;(2)将日期后推或前推N天,并将该日期输出。

    这是通过遍历从公元0年到当前日期每一年的天数来实现的,其中考虑了闰年的情况。 - **increaseDay()** 和 **decreaseDay()**:分别用于将日期向前或向后推进指定的天数。 ### 3. 用户交互与主逻辑 **程序流程**: ...

    输入某年某月某日,判断这一天是这一年的第几天

    标题所描述的任务——“输入某年某月某日,判断这一天是这一年的第几天”——是一个典型的日期处理问题,通常会出现在算法设计、软件开发或者数据分析的场景中。下面将详细阐述解决这个问题的方法,以及涉及到的相关...

    java 输入某年某月某日,判断这一天是这一年的第几天

    在Java编程中,有时我们需要处理日期相关的计算,例如根据用户输入的年、月、日来确定这一天是一年中的第几天。这个题目就是这样的一个场景。下面我们将详细解释如何实现这个功能,并探讨涉及到的Java日期处理知识。...

    Java 根据年月日,判断是一年中的第几天.rar

    Java 根据用户指定的某年某月某日,判断这一天是一年中的第几天,具体思路是:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。这是一个...

    java日期使用工作总结

    // 向当前日期添加一天 ``` ##### 4.2 GregorianCalendar使用示例 ```java GregorianCalendar gcal = new GregorianCalendar(2023, Calendar.JANUARY, 1); ``` #### 五、总结 通过上述介绍,我们可以看到Java...

    java计算整年工作日(包含特殊的工作日)排除法定节假日和周末能运行

    java计算整年工作日(包含特殊的工作日)排除法定节假日和周末能运行

    50道JAVA基础编程练习题

    程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,闰年且输入月份大于 3 时需考虑多加一天。 【程序 15】 题目:输入三个整数 x,y,z,请把这三个数由小到大输出。...

    計算某年的每月的某天是該年的第幾天

    在本篇文章中,我们将探讨一个简单的Java程序,用于计算给定年份中每个月的某一天是这一年的第几天。这个程序不仅涉及到基本的日期计算逻辑,还包含了闰年的判断方法。通过使用`Scanner`类来接收用户输入的数据,...

    java代码中时间的处理

    - 增加或减少日期:`java.time`包中的日期和时间对象提供了`plusDays()`, `minusMonths()`, `plusYears()`等方法,可以方便地进行日期计算,例如得到前一天、前一个月或前一年。 - `TemporalAdjusters`:这个接口...

    java awt日历

    5. **切换月份和年份**:添加前一个月、后一个月以及前一年、后一年的按钮,当用户点击这些按钮时,更新日历显示的月份和年份。 6. **处理特殊日期**:根据需求,可能需要标记特定的日期,比如节假日或纪念日。可以...

    基于java的Calendar万年历.zip

    然后,通过循环遍历每一年、每个月和每一天,生成对应的日历日期。这通常涉及到Calendar的`add`方法来增加日期字段(如年、月、日),以及`get`方法来获取当前日期字段的值。 为了展示日历,开发者可能使用了控制台...

    Java课程设计报告(日历记事本)

    该类中的主要方法包括获取当前月的天数、计算当前月第一天是星期几等。 - **关键代码示例**: ```java public int getMonthDays(int year, int month) { // 根据年月计算该月有多少天 } public int ...

    用java写的万年历

    这个程序的核心是利用Java编程语言的强大功能来处理日期和时间,为用户提供了一个方便的方式来查看从公元前到公元后任何一年的月份日历。下面我们将详细探讨Java在实现万年历程序中的关键知识点。 首先,Java日期...

    黑色星期五java入门程序

    在这个代码中,`findBlackFriday`方法首先找到11月的第一天,然后找到第一个星期四,再加3周,最后返回前一个或当前的星期五,这便是黑色星期五的日期。 通过这个项目,初学者可以实践Java的基本语法,理解日期处理...

    java万年历代码.java万年历代码

    计算从1900年至输入年份前一年的总天数,闰年为366天,平年为365天。 #### 2.7 计算当月之前的所有天数 ```java int beforeDays = 0; for (int i = 1; i ; i++) { switch (i) { case 1: case 3: case 5: case...

    输入年月日,并打印出该月的日历,并显出星期,在日历上标出该日

    // 假设已计算出sum1为当前日期前的总天数,sum2为当前日期在该月的相对位置 int i = sum2 % 7; // 输出当前月的日历 for (int j = 1; j ; j++) { System.out.printf("%2d", j); // 保持两位数格式 if (j == day) ...

    初学java基础练习题

    程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,闰年且输入月份大于 3 时需考虑多加一天。 十五、三个整数排序 题目:输入三个整数 x,y,z,请把这三个数由小到...

    java技巧

    计算明天的日期也很简单,只需要在当前日期的基础上加上一天即可。 ```java Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, 1); // 加一天 SimpleDateFormat formatter = new ...

    java万年历nvbal

    接着,为了确定目标月份的第1天是星期几,需要知道从1月1日到目标月份前一天的总天数。这一步骤同样通过遍历1月到目标月之前的每个月,累加每个月的天数来实现。 ```java int beforeDays = 0; for (int i = 1; i ; ...

Global site tag (gtag.js) - Google Analytics