问题的本身没有什么难度,但是要想一下子找到一个现成的方法还真不是那么容易,本来以为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
希望踩的朋友也能留下宝贵批评意见,也能使我从中有所收获不断进步,不甚感激!
分享到:
相关推荐
本篇文档主要介绍了一个Java程序,该程序的功能是根据用户输入的日期,计算出该日期所处的季度。这是一个典型的日期处理场景,在各种业务系统中非常常见,比如财务报表、数据分析等。 #### 二、关键概念与术语解释 ...
这是通过遍历从公元0年到当前日期每一年的天数来实现的,其中考虑了闰年的情况。 - **increaseDay()** 和 **decreaseDay()**:分别用于将日期向前或向后推进指定的天数。 ### 3. 用户交互与主逻辑 **程序流程**: ...
标题所描述的任务——“输入某年某月某日,判断这一天是这一年的第几天”——是一个典型的日期处理问题,通常会出现在算法设计、软件开发或者数据分析的场景中。下面将详细阐述解决这个问题的方法,以及涉及到的相关...
在Java编程中,有时我们需要处理日期相关的计算,例如根据用户输入的年、月、日来确定这一天是一年中的第几天。这个题目就是这样的一个场景。下面我们将详细解释如何实现这个功能,并探讨涉及到的Java日期处理知识。...
Java 根据用户指定的某年某月某日,判断这一天是一年中的第几天,具体思路是:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。这是一个...
// 向当前日期添加一天 ``` ##### 4.2 GregorianCalendar使用示例 ```java GregorianCalendar gcal = new GregorianCalendar(2023, Calendar.JANUARY, 1); ``` #### 五、总结 通过上述介绍,我们可以看到Java...
java计算整年工作日(包含特殊的工作日)排除法定节假日和周末能运行
程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,闰年且输入月份大于 3 时需考虑多加一天。 【程序 15】 题目:输入三个整数 x,y,z,请把这三个数由小到大输出。...
在本篇文章中,我们将探讨一个简单的Java程序,用于计算给定年份中每个月的某一天是这一年的第几天。这个程序不仅涉及到基本的日期计算逻辑,还包含了闰年的判断方法。通过使用`Scanner`类来接收用户输入的数据,...
- 增加或减少日期:`java.time`包中的日期和时间对象提供了`plusDays()`, `minusMonths()`, `plusYears()`等方法,可以方便地进行日期计算,例如得到前一天、前一个月或前一年。 - `TemporalAdjusters`:这个接口...
5. **切换月份和年份**:添加前一个月、后一个月以及前一年、后一年的按钮,当用户点击这些按钮时,更新日历显示的月份和年份。 6. **处理特殊日期**:根据需求,可能需要标记特定的日期,比如节假日或纪念日。可以...
然后,通过循环遍历每一年、每个月和每一天,生成对应的日历日期。这通常涉及到Calendar的`add`方法来增加日期字段(如年、月、日),以及`get`方法来获取当前日期字段的值。 为了展示日历,开发者可能使用了控制台...
该类中的主要方法包括获取当前月的天数、计算当前月第一天是星期几等。 - **关键代码示例**: ```java public int getMonthDays(int year, int month) { // 根据年月计算该月有多少天 } public int ...
这个程序的核心是利用Java编程语言的强大功能来处理日期和时间,为用户提供了一个方便的方式来查看从公元前到公元后任何一年的月份日历。下面我们将详细探讨Java在实现万年历程序中的关键知识点。 首先,Java日期...
在这个代码中,`findBlackFriday`方法首先找到11月的第一天,然后找到第一个星期四,再加3周,最后返回前一个或当前的星期五,这便是黑色星期五的日期。 通过这个项目,初学者可以实践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) ...
程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,闰年且输入月份大于 3 时需考虑多加一天。 十五、三个整数排序 题目:输入三个整数 x,y,z,请把这三个数由小到...
计算明天的日期也很简单,只需要在当前日期的基础上加上一天即可。 ```java Calendar cal = Calendar.getInstance(); cal.add(Calendar.DAY_OF_MONTH, 1); // 加一天 SimpleDateFormat formatter = new ...
接着,为了确定目标月份的第1天是星期几,需要知道从1月1日到目标月份前一天的总天数。这一步骤同样通过遍历1月到目标月之前的每个月,累加每个月的天数来实现。 ```java int beforeDays = 0; for (int i = 1; i ; ...