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中取得当月最后一天的四种方法相关推荐

  1. java取子串_Java中获取子字符串的几种方法示例

    首先假如有这样一串字符串: String s = "共 100 页, 1 2 3 4..."; 假如我想把"100"给取出来,该如何做? 方法一: 采用spli ...

  2. java indexof 子字符串_Java中字符串中子串的查找共有四种方法(indexof())

    Java中字符串中子串的查找共有四种方法(indexof()) Java中字符串中子串的查找共有四种方法,如下: 1.int indexOf(String str) :返回第一次出现的指定子字符串在此 ...

  3. java 中lock,java中lock获取锁的四种方法

    在java接口中会存放着许多方法,方便线程使用时的直接调用.对于lock接口大家都不陌生,我们已经初步对概念进行了理解.那么在获取锁的方法上想必还不是很清楚.下面我们就lock获取锁的四种方法分别进行 ...

  4. 【转】Java中字符串中子串的查找共有四种方法(indexof())

    原文网址:http://wfly2004.blog.163.com/blog/static/1176427201032692927349/ Java中字符串中子串的查找共有四种方法,如下: 1.int ...

  5. Java中字符串中子串的查找共有四种方法(indexof())

    2019独角兽企业重金招聘Python工程师标准>>> public class FirstDemo { /** *API中String的常用方法 */ // 查找指定字符串是否存在 ...

  6. 在Action类中获得HttpServletResponse对象的四种方法

    Struts2:在Action类中获得HttpServletResponse对象的四种方法 在struts1.x Action类的execute方法中,有四个参数,其中两个就是response和req ...

  7. c语言中字符串去掉逗号,JS四种方法去除字符串最后的逗号

    window.οnlοad=function() { var obj = {name: "xxx", age: 30, sex: "female"};//定义一 ...

  8. python可以实现哪些功能_Python中实现机器学习功能的四种方法介绍

    本篇文章给大家带来的内容是关于Python中实现机器学习功能的四种方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在本文中,我们将介绍从数据集中选择要素的不同方法; 并使用S ...

  9. Simulink中构造时变传递函数的四种方法

    1. 原由 传递函数是针对线性时不变(Linear Time-Invariant,LTI)系统定义的,严格来说,时变传递函数的说法并不十分严谨.但 "时变"和"非线性&q ...

最新文章

  1. mysql所有表查询
  2. codeforces E. Games on a CD(双hash)
  3. codeforces 450B. Jzzhu and Sequences 解题报告
  4. NodeJs Express 4.x 入门
  5. 【普通の随笔】6.30
  6. php制作图片轮播_图片轮播效果实现方法
  7. MFC实现BCB中的ProcessMessages
  8. 当面试官问你了不了解defineProperty的时候。。。
  9. 数据结构学习篇(一)---大纲、简介、作用
  10. 历年考研计算机专业英语平均分,历年考研英语平均分及难度分析(截止至2020年)...
  11. 刑事案件鉴定意见常用质证要点
  12. Wp和Win8平台在实际开发中的对比
  13. Shell脚本书写方法详解
  14. 【C语言基础练习】百钱买百鸡问题。母鸡3元钱一只,小鸡1元钱三只,问100元钱要刚好买100只鸡,编程实现母鸡和小鸡各多少只?
  15. 2023计算机毕业设计SSM最新选题之java亚健康人群健康管理系统c4cyz
  16. vue 找回密码_找回密码的功能设计
  17. 写的一个网页登录注册模板(css+js),注册成功后把账号保存到MySQL数据库,登录时从数据库查找进行验证(jsp+javabean)
  18. 巴西龟饲养日志-----饲料的选择
  19. 激光测距仪系统设计 c语言程序),激光测距仪系统设计(机械图,电路图,c语言程序)...
  20. doom emacs如何安装新插件和自定义快捷键

热门文章

  1. 开源 | 全球首个批流一体机器学习平台 Alink
  2. Android中清除缓存
  3. 有监督算法和无监督算法的理解
  4. 使用原生rust搭建http服务器
  5. HaaS506 - M320快速开始
  6. android wifi与连接设备通讯录,WiFi Direct设备与其他Android设备的连接
  7. Planner 5D for Mac(3D家居室内设计) V4.1.9破解版
  8. 典型商业电磁全波仿真软件介绍
  9. Docker Swarm集群仓库和可视化管理
  10. Web前端必做笔记之一:let, var, const的区别