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