Calendar 类是一个抽象类,为日历字段之间的转换提供了一些方法。
其中有一个重要方法 getActualMaximum ,该方法用于返回指定日历字段实际的最大值。

利用这个方法(Calendar.getActualMaximum),我们可以获得某年某月的天数。

代码如下:

  /*** 获得某个月最大天数* * @param year 年份* @param month 月份 (1-12)* @return 某个月最大天数*/public int getMaxDayByYearMonth(int year, int month) {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.YEAR, year - 1);calendar.set(Calendar.MONTH, month);return calendar.getActualMaximum(Calendar.DATE);}

备注:以上代码有两个需要注意的地方:

① Calendar除了getActualMaximum方法之外,还有一个看起来类似的方法getMaximum,但是这两个方法是不同的:
getActualMaximum 返回实际的最大数值,getMaximum 返回的是可能的最大数值。
上面的代码如果改成getMaximum,那么一般情况都会恒定的返回31 (月份中可能的最大天数是31)

② Calendar 的月份取值范围是 0 - 11 , 0代表1月 11代表12月份
(这是因为Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们操作月份的时候会根据需要做 +1 或 -1 的处理)

转载于:https://www.cnblogs.com/relucent/p/4566582.html

JAVA中获得一个月最大天数的方法(备忘)相关推荐

  1. java判断一个月间隔_如何检查间隔列表(Joda-Time)是否完全涵盖Java中的一个月

    您可以使用下一个方法 static boolean covers(Interval month, List intervals) { //assumes intervals are sorted al ...

  2. Java黑皮书课后题第4章:*4.17(一个月的天数)编写一个程序,提示用户输入一个年份和一个月份名称的前3个字母(第一个字母使用大写形式),显示该月中的天数。如果月份非法则显示出错信息

    *4.17(一个月的天数)编写一个程序,提示用户输入一个年份和一个月份名称的前3个字母(第一个字母使用大写形式),显示该月中的天数.如果月份非法则显示出错信息 题目 题目概述 破题 运行示例 代码 题 ...

  3. 第四章第十七题(一个月的天数)(Days of a month)

    第四章第十七题(一个月的天数)(Days of a month) *4.17(一个月的天数)编写一个程序,提示用户输入一个年份和一个月份名称的前三个字母(第一个字母使用大写形式),显示该月中的天数.如 ...

  4. 如何在Java中创建一个新的List

    本文翻译自:How to make a new List in Java We create a Set as: 我们创建一个Set为: Set myset = new HashSet() How d ...

  5. 怎么在java中创建一个自定义的collector

    文章目录 简介 Collector介绍 自定义Collector 总结 怎么在java中创建一个自定义的collector 简介 在之前的java collectors文章里面,我们讲到了stream ...

  6. 怎么在java中关闭一个thread

    怎么在java中关闭一个thread 我们经常需要在java中用到thread,我们知道thread有一个start()方法可以开启一个线程.那么怎么关闭这个线程呢? 有人会说可以用Thread.st ...

  7. java中判断一个字符在字符串中出现的次数

    源代码: //java中判断一个字符出现的次数//在下面字符串中查找有几个啊public static void testFindChar(){String str = "啊!我爱你中国!啊 ...

  8. c++中的new_怎么在java中创建一个自定义的collector

    简介 在之前的java collectors文章里面,我们讲到了stream的collect方法可以调用Collectors里面的toList()或者toMap()方法,将结果转换为特定的集合类. 今 ...

  9. thread java 关闭_怎么在java中关闭一个thread

    怎么在java中关闭一个thread 我们经常需要在java中用到thread,我们知道thread有一个start()方法可以开启一个线程.那么怎么关闭这个线程呢? 有人会说可以用Thread.st ...

最新文章

  1. 使用.net开发手机管理软件 (七) IrMC简介
  2. 检测日期格式是否为yyyy-MM-dd
  3. p字间距 html段落内文字设置字间距间隔
  4. 【Java】文件锁定与系列NIO操作
  5. 华为公开折叠屏新专利:Mate X2有望首发搭载
  6. Oracle预定义的21个系统异常类型
  7. FREERTOS 手册阅读笔记
  8. jquery学习系列1(Ready)
  9. Https网络安全传输详解
  10. 软件性能优化之内存优化
  11. java 上传文件 md5_上传到文件选择器时的md5校验和
  12. ICEM 准备工作-常用操作
  13. groovy语法基础
  14. 14种异常检测方法汇总
  15. keil调试过程中源代码界面没有箭头
  16. 搭建无线监控云存储服务器,mac 篇二:自建docker视频录像机NVR存储-家用摄像头云存储服务zoneminder...
  17. 华雨欢:昨日黄花在逐渐奋起的市场里夭折与否已没多少人关注
  18. t420i升级固态硬盘提升_技术丨如何升级固态硬盘,提高电脑性能
  19. matlab常用工具箱汇总(附toolbox下载地址)
  20. 挽回前男友的方法(挽回必看)

热门文章

  1. 如何将JAR包发布到Maven中央仓库?
  2. java: cannot execute binary file 如果遇到这个错,一般是操作系统位数出问题了。
  3. js 日期星期 带农历
  4. android 安装应用程序apk安装不了
  5. android 获取lanucher 列表
  6. Flex通过Blazeds利用Remoteservice与后台java消息推送
  7. Google Flash转换HTML5工具Swiffy测试版发布
  8. 快速完成和读懂测试计划
  9. 例用C# 变更文件夹时间
  10. 网络爬虫--12.【XPath实战】获取百度贴吧中的图片