Java获取某年某月的第一天和最后一天

复制代码
/**
         * 获取某年某月的最后一天
         * @return 
         *
         */
        public static Date getYearLastDayOfMonth(int year,int month)
        {
            int year1 = year;  //
            int month1 = month; //
            Calendar cal = Calendar.getInstance();
            // 设置年份
            cal.set(Calendar.YEAR, year1);
            // 设置月份
            // cal.set(Calendar.MONTH, month - 1);
            cal.set(Calendar.MONTH, month1); //设置当前月的上一个月
            // 获取某月最大天数
            //int lastDay = cal.getActualMaximum(Calendar.DATE);
            int lastDay = cal.getMinimum(Calendar.DATE); //获取月份中的最小值,即第一天
            // 设置日历中月份的最大天数
            //cal.set(Calendar.DAY_OF_MONTH, lastDay);
            cal.set(Calendar.DAY_OF_MONTH, lastDay - 1); //上月的第一天减去1就是当月的最后一天
            // 格式化日期
            /*SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            System.out.println(sdf.format(cal.getTime()));*/
            return cal.getTime();
        } 
        
        /**
         * 获取某年某月的第一天
         * @param year
         * @param month
         * @return
         */
        public static Date getFisrtDayOfMonth(int year,int month)
        {
            Calendar cal = Calendar.getInstance();
            //设置年份
            cal.set(Calendar.YEAR,year);
            //设置月份
            cal.set(Calendar.MONTH, month-1);
            //获取某月最小天数
            int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
            //设置日历中月份的最小天数
            cal.set(Calendar.DAY_OF_MONTH, firstDay);
            //格式化日期
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            String firstDayOfMonth = sdf.format(cal.getTime());
            System.out.println(firstDayOfMonth);  
            return cal.getTime();
        }  
    public static void main(String[] args) throws ParseException, AppException {
          Calendar calendar = Calendar.getInstance();
          // 获取当前年
          int year = calendar.get(Calendar.YEAR); 
          //System.out.println(getLastDayOfMonth(2022,1));
          System.out.println(DateFormatTools.getFisrtDayOfMonth(2022,2));
          DateFormatTools.getYearLastDayOfMonth(2022,2);
          //System.out.println(getYearFirst(2022));
      }
复制代码

输出:

 

 

1
2
PS:2月份获取的最后一天日期不对,抱歉,已改正。
修改为:用当前月的上个月的第一天减去1就是当月的最后一天。

  

posted @   Ferocious  阅读(2068)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示