java日期相關方法

/**
     *  java 獲取 獲取某年某月 所有日期(yyyy-mm-dd格式字符串)
     * @param year
     * @param month
     * @return
     */
    public static List<String> getMonthFullDay(int year , int month){
        SimpleDateFormat dateFormatYYYYMMDD = new SimpleDateFormat("yyyy-MM-dd");
        List<String> fullDayList = new ArrayList<>(32);
        // 獲得當前日期對象
        Calendar cal = Calendar.getInstance();
        cal.clear();// 清除信息
        cal.set(Calendar.YEAR, year);
        // 1月從0開始
        cal.set(Calendar.MONTH, month-1 );
        // 當月1號
        cal.set(Calendar.DAY_OF_MONTH,1);
        int count = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
        for (int j = 1; j <= count ; j++) {
            fullDayList.add(dateFormatYYYYMMDD.format(cal.getTime()));
            cal.add(Calendar.DAY_OF_MONTH,1);
        }
        return fullDayList;
    }

    /**
     *  java 獲取 獲取某年某月 所有月份(yyyy-mm格式字符串)
     * @param year
     * @return
     */
    public static List<String> getYearFullMonth(int year){
        List<String> list = new ArrayList<>(12);

        for (int j = 1; j <= 12 ; j++) {
            if (j<10){
                list.add(year+"-0"+j);
            }else {
                list.add(year+"-"+j);
            }
        }
        return list;
    }
    /**
     *  java 獲取 獲取某年某月 有幾周及開始日期,結束日期
     * @param date
     * @return
     */
    public static Map<String,DataObj> getWeeks(String date){
        Map<String,DataObj> map = new LinkedHashMap<>();
        try {
            DateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
            Date date1 = dateFormat.parse(date);
            Calendar calendar = new GregorianCalendar();
            calendar.setTime(date1);
            int days = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
            int count = 0;
            for (int i = 1; i <= days; i++) {
                DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
                Date date2 = dateFormat1.parse(date + "-" + i);
                calendar.clear();
                calendar.setTime(date2);
                int k = new Integer(calendar.get(Calendar.DAY_OF_WEEK));
                if (k == 1) {// 若當天是週日
                    count++;
                    DataObj dataObj = new DataObj();
                    if (i - 6 <= 1) {
                        String startTime = date + "-" + 1;
                        dataObj.setStartTime(dateFormat1.parse(startTime));
                    } else {
                        String startTime = date + "-" + (i - 6);
                        dataObj.setStartTime(dateFormat1.parse(startTime));
                    }
                    dataObj.setEndTime(dateFormat1.parse(date + "-" + i));
                    map.put("第" + count + "周",dataObj);
                }
                if (k != 1 && i == days) {// 若是本月最好一天,且不是週日
                    count++;
                    DataObj dataObj = new DataObj();
                    dataObj.setStartTime(dateFormat1.parse(date + "-" + (i - k + 2)));
                    dataObj.setEndTime(dateFormat1.parse(date + "-" + i));
                    map.put("第" + count + "周",dataObj);
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        return map;
    }

    

    /**
     * @Description //當前年份
     * @Date 2019/2/12 11:36
     * @Param []
     * @return int
     **/
    public static int getYearCurrent(){
        Calendar cal = Calendar.getInstance();
        int year = cal.get(Calendar.YEAR);
        return year;
    }

    /**
     * @Description //當前月份
     * @Date 2019/2/12 11:36
     * @Param []
     * @return int
     **/
    public static int getMonthCurrent(){
        Calendar cal = Calendar.getInstance();
        int month = cal.get(Calendar.MONTH )+1;
        return month;
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章