获取某年某月有几天

java判断某年某月有几天,可以这样弄:// 将日历里的日设为0,日历就会倒转到上一个月的最后一天

 

复制代码
 1 public static int getDaysOfYearMonth(int year, int month){
 2 
 3 Calendar cal = Calendar.getInstance();
 4 
 5 cal.set(Calendar.YEAR, year);
 6 
 7 cal.set(Calendar.MONTH, month - 1);
 8 cal.set(Calendar.DAY_OF_MONTH, 1);
9 cal.add(Calendar.MONTH, 1); 10 // 将日历里的日设为0,日历就会倒转到上一个月的最后一天 11 12 cal.set(Calendar.DAY_OF_MONTH, 0); 13
  return cal.get(Calendar.DAY_OF_MONTH); 14 }
复制代码

 

 

 

复制代码
  /**
     * 获取某年某月最后一天
     * 此函数有缺陷: windows单元测试没有问题\linux单独运行此函数没有问题\linux联调会跳出这样的结果:2019年2月最后一天是31天
     * 
     * @param year 年
     * @param monthFrom1 1-12月
     * @author 
     * @return
     */
    public static int getDaysOfMonth1(int year, int monthFrom1) {
        logger.info("Year=" + year + ", monthFrom1=" + monthFrom1);

        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, monthFrom1 - 1);
        //获取某月最大天数
        int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

        {
            for (int m = 1; m <= 13; m++) {
                cal.set(Calendar.MONTH, m - 1);
                int days = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
                logger.info("Year=" + year + ", m=" + m + ", days=" + days);
            }
        }

        logger.info("Year=" + year + ", monthFrom1=" + monthFrom1 + ", lastDay=" + lastDay);
        return lastDay;
    }
复制代码

 

Java获得某月第一天和最后一天(Calendar实现)

摘自:https://blog.csdn.net/u011287511/article/details/54344402 

posted @   LiuYanYGZ  阅读(715)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2017-08-17 usb资料2
点击右上角即可分享
微信分享提示