java-一个月的第一天和最后一天

本文介绍了一种使用Java中的Calendar类来获取指定年份和月份最后一天的方法,并提供了获取当前月第一天和最后一天的实用函数。
  1. <pre name="code" class="java">/** 
  2.      *  
  3.      * @param year 
  4.      *            int 年份 
  5.      * @param month 
  6.      *            int 月份 
  7.      *  
  8.      * @return int 某年某月的最后一天 
  9.      */  
  10.     private int getLastDayOfMonth(int year, int month) {  
  11.         Calendar cal = Calendar.getInstance();  
  12.         cal.set(Calendar.YEAR, year);  
  13.         cal.set(Calendar.MONTH, month);  
  14.         // 某年某月的最后一天  
  15.         return cal.getActualMaximum(Calendar.DATE);  
  16.     }  
  17.   
  18. 需要注意的是:月份是从0开始的,比如说如果输入5的话,实际上显示的是4月份的最后一天,千万不要搞错了哦  
  19. </pre><br>  
  20. Calendar calendar = Calendar.getInstance(); //得到月初 calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMinimum(Calendar.DAY_OF_MONTH)); Date strDateFrom = calendar.getTime(); //得到月末 calendar.set(Calendar.DAY_OF_MONTH,calendar.getActualMaximum(Calendar.DAY_OF_MONTH));  
  21.  Date strDateTo = calendar.getTime();  
  22. <pre></pre>  
  23. <pre name="code" class="java">/**   
  24.  * 得到本月的第一天   
  25.  * @return   
  26.  */    
  27. public static String getMonthFirstDay() {     
  28.     Calendar calendar = Calendar.getInstance();     
  29.     calendar.set(Calendar.DAY_OF_MONTH, calendar     
  30.             .getActualMinimum(Calendar.DAY_OF_MONTH));     
  31.     
  32.     return dateFormat("yyyy-MM-dd", calendar.getTime());     
  33. }     
  34.     
  35. /**   
  36.  * 得到本月的最后一天   
  37.  *    
  38.  * @return   
  39.  */    
  40. public static String getMonthLastDay() {     
  41.     Calendar calendar = Calendar.getInstance();     
  42.     calendar.set(Calendar.DAY_OF_MONTH, calendar     
  43.             .getActualMaximum(Calendar.DAY_OF_MONTH));     
  44.     return dateFormat("yyyy-MM-dd", calendar.getTime());     
  45. }     
  46. </pre><br>  
  47. <br>  
### 获取每个月的第一天最后一天 为了在Java中获取每个月的第一天最后一天,可以利用`java.time.LocalDate`类以及其相关方法。下面展示了一个简单的例子来说明这一过程。 ```java import java.time.LocalDate; import java.time.temporal.TemporalAdjusters; public class MonthDays { public static void main(String[] args) { LocalDate today = LocalDate.now(); // Get the first day of this month. LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth()); System.out.println("First Day Of This Month: " + firstDayOfMonth); // Get the last day of this month. LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth()); System.out.println("Last Day Of This Month: " + lastDayOfMonth); // For demonstration purposes, let's loop through all months in a year from current date, // printing out their respective start and end dates. for (int i = 0; i < 12; ++i){ LocalDate tempDate = today.plusMonths(i).with(TemporalAdjusters.firstDayOfYear()).plusMonths(1 * i); LocalDate firstDayOfEachMonth = tempDate.with(TemporalAdjusters.firstDayOfMonth()); LocalDate lastDayOfEachMonth = tempDate.with(TemporalAdjusters.lastDayOfMonth()); System.out.printf("For %s-%d : First=%s , Last=%s%n", tempDate.getMonth(), tempDate.getYear(), firstDayOfEachMonth.toString(),lastDayOfEachMonth.toString() ); } } } ``` 上述代码展示了如何使用`LocalDate`对象及其内置调整器(`TemporalAdjuster`)来计算给定月份的第一个日期最后一个日期[^1]。 #### 关于循环部分解释: - `for` 循环用于遍历一年中的每一个月- 使用 `today.plusMonths(i)` 来移动到当前年份的不同月份。 - 调整至每月第一天 (`firstDayOfMonth()`) 最后一日 (`lastDayOfMonth()`), 并打印出来。 此段程序不仅适用于当前时间点所在的那个月份,而且能够处理任何指定的时间范围内的所有月份。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值