`
byf157
  • 浏览: 207763 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

java中取得当月最后一天的四种方法 java Calendar 当月 第一天 最后一天

    博客分类:
  • java
 
阅读更多

java中取得当月最后一天的四种方法

  第一种,使用Calendar的roll方法,在限制某个日期字段不改变的形式下,改变其他日期字段的值。

  第二种,使用Calendar的getActualMaximum方法,获得指定日期字段的最大值。

  第三种,使用Calendar的set和add方法,从下个月的第一天计算得到当前月的最后一天。

  第四种,循环使用Calendar的add方法,加到本月的最后一天。

  以上四种方法如下示例


   import java.text.ParseException;
  import java.text.SimpleDateFormat;
  import java.util.Calendar;
  import java.util.Date;
  public class DateTime {
  public static void main(String[] args) throws ParseException {
  DateTime dt = new DateTime();
  Date date = new SimpleDateFormat("yyyy-MM-dd").parse("2008-02-14");
  date = dt.lastDayOfMonth(date);
  System.out.println (new SimpleDateFormat("yyyy-MM-dd").format(date));
  date = new SimpleDateFormat("yyyy-MM-dd").parse("2008-02-14");
  date = dt.lastDayOfMonth2(date);
  System.out.println (new SimpleDateFormat("yyyy-MM-dd").format(date));
  date = new SimpleDateFormat("yyyy-MM-dd").parse("2008-02-14");
  date = dt.lastDayOfMonth3(date);
  System.out.println (new SimpleDateFormat("yyyy-MM-dd").format(date));
  date = new SimpleDateFormat("yyyy-MM-dd").parse("2008-02-14");
  date = dt.lastDayOfMonth4(date);
  System.out.println (new SimpleDateFormat("yyyy-MM-dd").format(date));
  }
  public Date lastDayOfMonth(Date date) {
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  cal.set(Calendar.DAY_OF_MONTH, 1);
  cal.roll(Calendar.DAY_OF_MONTH, -1);
  return cal.getTime();
  }
  public Date lastDayOfMonth2(Date date) {
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  int value = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
  cal.set(Calendar.DAY_OF_MONTH, value);
  return cal.getTime();
  }
  public Date lastDayOfMonth3(Date date) {
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  cal.set(Calendar.DAY_OF_MONTH, 1);
  cal.add(Calendar.MONTH, 1);
  cal.add(Calendar.DATE, -1);
  return cal.getTime();
  }
  public Date lastDayOfMonth4(Date date) {
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  do {
  cal.add(Calendar.DATE, 1);
  }
  while (cal.get(Calendar.DATE) != 1);
  cal.add(Calendar.DATE, -1);
  return cal.getTime();
  }
  }

  输入日期

  2008-02-14

  输出结果

  2008-02-29

  2008-02-29

  2008-02-29

  2008-02-29

分享到:
评论

相关推荐

    java 获取时间 本周本年本月第一天最后一天

    ### Java 获取时间:本周、本年、本月的第一天与最后一天 在Java中,通过`Calendar`类可以方便地操作日期。以下将详细介绍如何利用`Calendar`类来获取本周、本年、本月的第一天和最后一天的具体实现方法。 #### ...

    获取当月的第一天和最后一天

    #### 获取当月第一天 为了获取当前月份的第一天,我们可以创建一个`Calendar`实例并将其日期字段设置为一个月的第一天,然后使用`SimpleDateFormat`将其转换为字符串格式。具体步骤如下: 1. 创建`Calendar`实例。...

    java获取每月的最后一天实现方法

    我们首先将当前日期设置为当前月份的第一天,然后将当前日期加上一个月,并将日期减去一天,以获取当前月份的最后一天。最后,我们可以使用voucherDate对象来获取当前月份的最后一天的日期。 需要注意的是,我们在...

    java获取某一时间

    // 设置为当月第一天 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); return sdf.format(c.getTime()); } public String getLastDayOfMonth() { Calendar c = Calendar.getInstance(); c.set...

    java中计算某个月的工作日总共几天

    该方法用于获取指定月份的第一天日期。 ```java public static String getMonthFirstDate(Date date) { if (date == null) { date = new Date(); } Calendar c = Calendar.getInstance(); c.setTime(date); ...

    java计算24节气

    2. **节气算法**:计算24节气的算法基于太阳黄经度,每年大致固定,但具体到每一天需要精确计算。24节气包括立春、雨水、惊蛰、春分、清明、谷雨、立夏、小满、芒种、夏至、小暑、大暑、立秋、处暑、白露、秋分、...

    JAVA中获得本地系统时间的方法

    本文将详细介绍两种常用方法来获取Java中的本地系统时间:通过`Calendar`类以及通过`SimpleDateFormat`类。 #### 方法一:使用`Calendar`类 `java.util.Calendar`是Java中用来处理日期和时间的主要工具之一,它...

    JavaDate应用实例.pdf

    这个方法首先调用`getMonthBegin`获取当月的第一天,然后创建一个`Calendar`实例,并将这个日期设置为其时间。接着,通过增加一个月和减去一天(`calendar.add(Calendar.MONTH, 1);` 和 `calendar.add(Calendar.DAY...

    Java语言深入--Java中日期的使用方法

    在这个例子中,我们首先创建了一个`GregorianCalendar`实例,并设置了月份和日期以找到当月的第一个星期一。然后,我们通过计算调整到第一个星期五。接着,我们循环增加9个星期,以找到第十个星期五。最后,我们检查...

    根据年月得到当月的天数及日期

    除了获取天数,还可以创建该月份的第一天和最后一天的日期对象。这在处理日期范围或者事件调度时非常有用。 6. **性能优化**: 对于大量数据处理,可以预先计算好一年所有月份的天数并存储,然后直接查询,提高...

    java对日期的控制

    #### 获取当月第一天 ```java public String getFirstDayOfMonth() { Calendar cal = Calendar.getInstance(); cal.set(Calendar.DAY_OF_MONTH, 1); return getNowTime("yyyy-MM-dd"); } ``` 通过将月份的第一...

    java日历打印

    - 获取指定月份的第一天(星期几)和最后一天,这可以通过`getFirstDayOfWeek()`和`getActualMaximum(DAY_OF_MONTH)`方法实现。 - 编写一个循环结构,按行打印每一天。每行打印7天,因为一周有7天。在遇到输入的...

    java日期处理大全

    2. **计算一年中第一周的第一天**: ```java SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); cal.set(Calendar.WEEK_OF_...

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

    根据给定的文件信息,我们可以总结出以下关于Java万年历代码的相关知识点: ### 1. 项目概述 ...此外,程序还考虑到了输入月份的第一天是一周中的哪一天这一细节,使得输出结果更加符合实际情况。

    史上最全java时间类date的处理

    - **本月第一天日期**:可以设置日历到当月的第一天。 - **本月最后一天日期**:首先找到当月的总天数,然后设置日历到那一天。 - **上个月相关日期**:通过减去一个月来获取上个月第一天和最后一天的日期。 - **下...

    java编写的日历类程序,输入年份和月份,打印出该月的日历

    - 设置当前日期为指定年份和月份的第一天:`cd.set(year, month - 1, 1);` - 注意:`Calendar` 类的月份索引是从0开始的,因此实际月份需减1。 - 获取当前日期是一周中的第几天:`int week = cd.get(Calendar.DAY...

    java 面试题

    2. **设置日期为当月第一天**:使用`set(Calendar.DATE, 1)`将日期设置为当月的第一天。 3. **回滚一天得到当月最后一天**:通过`roll(Calendar.DATE, -1)`将日期回滚一天,这样就得到了上一步设定日期的前一天,即...

    2014年Java最全面试题以及答案.

    27. 如何获取某个日期是当月的最后一天? 可以使用Calendar类或者LocalDate类结合withDayOfMonth方法来获取。 28. 如何格式化日期? 可以使用SimpleDateFormat类或者java.time包下的DateTimeFormatter类来格式化...

    Java Date的使用

    这个方法首先解析传入的日期字符串得到`Date`对象,然后设置`Calendar`对象的日期为当月的第一天,并最终返回格式化后的日期字符串。 #### 示例:获取指定日期的月末 ```java public String getMonthEnd(String ...

    java简易万年历程序

    - 使用`Calendar`类的`set`方法将日期设置为目标月份的第一天。 - 通过`get`方法获取这一天是一周中的哪一天。 ##### 4. `ShowResult(int weeknum, int year, int month)` - 根据传入的星期数字和年月,动态更新`...

Global site tag (gtag.js) - Google Analytics