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));
      }

输出:

 

 

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

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM