日歷類Calendar

1:定義

Calendar 類是一個抽象類(Abstract Class),GregorianCalendar 是它的一個具體實現(xiàn)。,它為特定時間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日歷字段之間的轉(zhuǎn)換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。瞬間可用毫秒值來表示,它是距歷元(即格林威治標(biāo)準(zhǔn)時間 1970 年 1 月 1 日的 00:00:00.000,格里高利歷)的偏移量。

2:常用API

3:設(shè)置指定的一個時間

? 測試:

4:獲取時間信息

主要API:int get(int field);?

其中,參數(shù) field 的值由 Calendar 類的靜態(tài)常量決定。其中:YEAR 代表年,MONTH 代表月,HOUR 代表小時,MINUTE 代表分,如:

測試:

5:add方法

6:Calendar與Date轉(zhuǎn)換

Calendar轉(zhuǎn)為Date:

Date轉(zhuǎn)為Calendar:

7:計算兩個時間之間相隔天數(shù)

8.CalendarUtil

public class CalendarUtil {

/**

? ? * 計算指定日期為當(dāng)年第幾周

? ? * @param year? ? ? 指定的年份

? ? * @param month? ? 指定的月份

? ? * @param day? ? ? 指定的日

? ? * @return? ? ? ? ? 指定日期為當(dāng)年的第幾周

? ? */

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

? ? }

? ? /**

? ? * 獲取本月第一天是星期幾

? ? */

? ? public static int getWeekOfFirstDay(Calendar c){

? ? ? ? Calendar calendar = c;

? ? ? ? calendar.set(Calendar.DAY_OF_MONTH, 1);

? ? ? ? return calendar.get(Calendar.DAY_OF_WEEK);

? ? }

? ? /**

? ? * 獲取本月1號是該年的第幾周

? ? */

? ? public static int getMonthStartWeek(Calendar c){

? ? ? ? Calendar calendar = c;

? ? ? ? calendar.set(Calendar.DATE, 1);

? ? ? ? return calendar.get(Calendar.WEEK_OF_YEAR);

? ? }

? ? /**

? ? * 獲取當(dāng)天是該年的第幾周

? ? */

? ? public static int getCurrentWeekOfYear(){

? ? ? ? Calendar calendar = Calendar.getInstance();

? ? ? ? return calendar.get(Calendar.WEEK_OF_YEAR);

? ? }

? ? /**

? ? * 獲取上月的總天數(shù)

? ? */

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

? ? }

? ? /**

? ? * 獲取指定月份的總天數(shù)

? ? */

? ? public static int getCurrentMonthDays(int month){

? ? ? ? Calendar c = Calendar.getInstance();

? ? ? ? c.set(Calendar.MONTH, month);

? ? ? ? return c.getActualMaximum(Calendar.DAY_OF_MONTH);

? ? }

? ? /**

? ? * 獲取指定年份有多少周

? ? * @param year

? ? */

? ? public static int getTotalWeekOfYear(int year){

? ? ? ? Calendar c = Calendar.getInstance();

? ? ? ? return c.getActualMaximum(Calendar.WEEK_OF_YEAR);

? ? }

? ? /**

? ? * 判斷指定月份是否是當(dāng)前月

? ? */

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

? ? }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容