Java 日歷類 Calendar 相關方法

jopen 12年前發布 | 63K 次閱讀 Java Java開發

    /**

 * 計算指定日期為當年第幾周
 * @param year      指定的年份
 * @param month     指定的月份
 * @param day       指定的日
 * @return          指定日期為當年的第幾周
 */
public static int caculateWeekOfYear(int year,int month,int day){
    Calendar c = Calendar.getInstance();
    c.set(Calendar.YEAR, year);
    c.set(Calendar.MONTH, month - 1);
    c.set(Calendar.DATE, day);
    return c.get(Calendar.WEEK_OF_YEAR);
}

/**
 * 獲取本月第一天是星期幾
 * @return
 */
public static int getWeekOfFirstDay(Calendar c){
    Calendar calendar = c;
    calendar.set(Calendar.DAY_OF_MONTH, 1);
    return calendar.get(Calendar.DAY_OF_WEEK);
}

/**
 * 獲取本月1號是該年的第幾周
 * @return
 */
public static int getMonthStartWeek(Calendar c){
    Calendar calendar = c;
    calendar.set(Calendar.DATE, 1);
    return calendar.get(Calendar.WEEK_OF_YEAR);
}

/**
 * 獲取當天是該年的第幾周
 */
public static int getCurrentWeekOfYear(){
    Calendar calendar = Calendar.getInstance();
    return calendar.get(Calendar.WEEK_OF_YEAR);
}

/**
 * 獲取上月的總天數
 * @return
 */
public static int getLastMonthDays(Calendar c){
    Calendar calendar = c;
    calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1);
    return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}

/**
 * 獲取指定月份的總天數
 * @return
 */
public static int getCurrentMonthDays(int month){
    Calendar c = Calendar.getInstance();
    c.set(Calendar.MONTH, month);
    return c.getActualMaximum(Calendar.DAY_OF_MONTH);
}

/**
 * 獲取指定年份有多少周
 * @param year
 * @return
 */
public static int getTotalWeekOfYear(int year){
    Calendar c = Calendar.getInstance();
    return c.getActualMaximum(Calendar.WEEK_OF_YEAR);
}

/**
 * 判斷指定月份是否是當前月
 * @param month
 * @return
 */
public static boolean isCurrentMonth(int month){
    Calendar c = Calendar.getInstance();
    return (c.get(Calendar.MONTH) == month)?true:false;
}

/**
 * 計算指定的月份共有多少天
 */
public static int getTotalDaysOfMonth(int year, int month){
    Calendar c = Calendar.getInstance();
    c.set(Calendar.YEAR, year);
    c.set(Calendar.MONTH, month);
    c.set(Calendar.DATE, 1);
    /**
     * 計算這個月有多少天
     */
    return c.getActualMaximum(Calendar.DAY_OF_MONTH);
}</pre><br />
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!