歷法與時(shí)間
public class GregorianCalendarextends CalendarGregorianCalendar 是 Calendar 的一個(gè)具體子類,提供了世界上大多數(shù)國(guó)家使用的標(biāo)準(zhǔn)日歷系統(tǒng)。
GregorianCalendar 是一種混合日歷,在單一間斷性的支持下同時(shí)支持儒略歷和格里高利歷系統(tǒng),在默認(rèn)情況下,它對(duì)應(yīng)格里高利日歷創(chuàng)立時(shí)的格里高利歷日期(某些國(guó)家是在 1582 年 10 月 15 日創(chuàng)立,在其他國(guó)家要晚一些)。可由調(diào)用方通過調(diào)用 setGregorianChange() 來更改起始日期。
歷史上,在那些首先采用格里高利歷的國(guó)家中,1582 年 10 月 4 日(儒略歷)之后就是 1582 年 10 月 15 日(格里高利歷)。此日歷正確地模擬了這些變化。在開始格里高利歷之前,GregorianCalendar 實(shí)現(xiàn)的是儒略歷。格里高利歷和儒略歷之間的惟一區(qū)別就是閏年規(guī)則。儒略歷指定每 4 年就為閏年,而格里高利歷則忽略不能被 400 整除的世紀(jì)年。
GregorianCalendar 可實(shí)現(xiàn)預(yù)期的 格里高利歷和儒略歷。也就是說,可以通過在時(shí)間上無限地向后或向前外推當(dāng)前規(guī)則來計(jì)算日期。因此,對(duì)于所有的年份,都可以使用 GregorianCalendar 來生成有意義并且一致的結(jié)果。但是,采用現(xiàn)代儒略歷規(guī)則時(shí),使用 GregorianCalendar 得到的日期只在歷史上從公元 4 年 3 月 1 日之后是準(zhǔn)確的。在此日期之前,閏年規(guī)則的應(yīng)用沒有規(guī)則性,在 45 BC 之前,甚至不存在儒略歷。
在格里高利歷創(chuàng)立以前,新年是 3 月 25 日。為了避免混淆,此日歷始終使用 1 月 1 日為新年。如果想要格里高利歷轉(zhuǎn)換之前并且處于 1 月 1 日和 3 月 24 日之間的日期,則可以進(jìn)行手動(dòng)調(diào)整。
為 WEEK_OF_YEAR 字段所計(jì)算的值的范圍從 1 到 53。一年的第一個(gè)星期始于 getFirstDayOfWeek() 的最早 7 天,至少包含該年的 getMinimalDaysInFirstWeek() 各天。這取決于 getMinimalDaysInFirstWeek()、getFirstDayOfWeek() 的值以及 1 月 1 日是星期幾。一年的第一個(gè)星期和下一年的第一個(gè)星期之間的各個(gè)星期按順序從 2 到 52 或 53(根據(jù)需要)進(jìn)行編號(hào)。
例如,1998 年 1 月 1 日是星期四。如果 getFirstDayOfWeek() 為 MONDAY,并且 getMinimalDaysInFirstWeek() 為 4(這些值反映了 ISO 8601 和很多國(guó)家標(biāo)準(zhǔn)),則 1998 年的第一個(gè)星期開始于 1997 年 12 月 29 日,結(jié)束于 1998 年 1 月 4 日。但是,如果 getFirstDayOfWeek() 為 SUNDAY,那么 1998 年的第一個(gè)星期開始于 1998 年 1 月 4 日,結(jié)束于 1998 年 1 月 10 日;1998 年頭三天是 1997 年第 53 個(gè)星期的一部分。
為 WEEK_OF_MONTH 字段所計(jì)算的值的范圍從 0 到 6。一個(gè)月的第一個(gè)星期(WEEK_OF_MONTH = 1 的日期)是該月至少連續(xù) getMinimalDaysInFirstWeek() 天中的最早日期,結(jié)束于 getFirstDayOfWeek() 的前一天。與一年的第一個(gè)星期不同,一個(gè)月的第一個(gè)星期可能短于 7 天,也不必從 getFirstDayOfWeek() 這一天開始,并且不包括前一個(gè)月的日期。在第一個(gè)星期之前該月日期的 WEEK_OF_MONTH 為 0。
例如,如果 getFirstDayOfWeek() 為 SUNDAY,getMinimalDaysInFirstWeek() 為 4,那么 1998 年 1 月的第一個(gè)星期是從 1 月 4 日星期日到 1 月 10 日星期六。這些天的 WEEK_OF_MONTH 為 1。1 月 1 日星期四到 1 月 3 日星期六的 WEEK_OF_MONTH 為 0。如果 getMinimalDaysInFirstWeek() 變?yōu)?3,則 1 月 1 日到 1 月 3 日的 WEEK_OF_MONTH 為 1。
clear 方法將日歷字段設(shè)置為未定義。GregorianCalendar 為每個(gè)日歷字段使用以下默認(rèn)值(如果該值未定義)。 字段
默認(rèn)值
GregorianCalendar 是一種混合日歷,在單一間斷性的支持下同時(shí)支持儒略歷和格里高利歷系統(tǒng),在默認(rèn)情況下,它對(duì)應(yīng)格里高利日歷創(chuàng)立時(shí)的格里高利歷日期(某些國(guó)家是在 1582 年 10 月 15 日創(chuàng)立,在其他國(guó)家要晚一些)。可由調(diào)用方通過調(diào)用 setGregorianChange() 來更改起始日期。
歷史上,在那些首先采用格里高利歷的國(guó)家中,1582 年 10 月 4 日(儒略歷)之后就是 1582 年 10 月 15 日(格里高利歷)。此日歷正確地模擬了這些變化。在開始格里高利歷之前,GregorianCalendar 實(shí)現(xiàn)的是儒略歷。格里高利歷和儒略歷之間的惟一區(qū)別就是閏年規(guī)則。儒略歷指定每 4 年就為閏年,而格里高利歷則忽略不能被 400 整除的世紀(jì)年。
GregorianCalendar 可實(shí)現(xiàn)預(yù)期的 格里高利歷和儒略歷。也就是說,可以通過在時(shí)間上無限地向后或向前外推當(dāng)前規(guī)則來計(jì)算日期。因此,對(duì)于所有的年份,都可以使用 GregorianCalendar 來生成有意義并且一致的結(jié)果。但是,采用現(xiàn)代儒略歷規(guī)則時(shí),使用 GregorianCalendar 得到的日期只在歷史上從公元 4 年 3 月 1 日之后是準(zhǔn)確的。在此日期之前,閏年規(guī)則的應(yīng)用沒有規(guī)則性,在 45 BC 之前,甚至不存在儒略歷。
在格里高利歷創(chuàng)立以前,新年是 3 月 25 日。為了避免混淆,此日歷始終使用 1 月 1 日為新年。如果想要格里高利歷轉(zhuǎn)換之前并且處于 1 月 1 日和 3 月 24 日之間的日期,則可以進(jìn)行手動(dòng)調(diào)整。
為 WEEK_OF_YEAR 字段所計(jì)算的值的范圍從 1 到 53。一年的第一個(gè)星期始于 getFirstDayOfWeek() 的最早 7 天,至少包含該年的 getMinimalDaysInFirstWeek() 各天。這取決于 getMinimalDaysInFirstWeek()、getFirstDayOfWeek() 的值以及 1 月 1 日是星期幾。一年的第一個(gè)星期和下一年的第一個(gè)星期之間的各個(gè)星期按順序從 2 到 52 或 53(根據(jù)需要)進(jìn)行編號(hào)。
例如,1998 年 1 月 1 日是星期四。如果 getFirstDayOfWeek() 為 MONDAY,并且 getMinimalDaysInFirstWeek() 為 4(這些值反映了 ISO 8601 和很多國(guó)家標(biāo)準(zhǔn)),則 1998 年的第一個(gè)星期開始于 1997 年 12 月 29 日,結(jié)束于 1998 年 1 月 4 日。但是,如果 getFirstDayOfWeek() 為 SUNDAY,那么 1998 年的第一個(gè)星期開始于 1998 年 1 月 4 日,結(jié)束于 1998 年 1 月 10 日;1998 年頭三天是 1997 年第 53 個(gè)星期的一部分。
為 WEEK_OF_MONTH 字段所計(jì)算的值的范圍從 0 到 6。一個(gè)月的第一個(gè)星期(WEEK_OF_MONTH = 1 的日期)是該月至少連續(xù) getMinimalDaysInFirstWeek() 天中的最早日期,結(jié)束于 getFirstDayOfWeek() 的前一天。與一年的第一個(gè)星期不同,一個(gè)月的第一個(gè)星期可能短于 7 天,也不必從 getFirstDayOfWeek() 這一天開始,并且不包括前一個(gè)月的日期。在第一個(gè)星期之前該月日期的 WEEK_OF_MONTH 為 0。
例如,如果 getFirstDayOfWeek() 為 SUNDAY,getMinimalDaysInFirstWeek() 為 4,那么 1998 年 1 月的第一個(gè)星期是從 1 月 4 日星期日到 1 月 10 日星期六。這些天的 WEEK_OF_MONTH 為 1。1 月 1 日星期四到 1 月 3 日星期六的 WEEK_OF_MONTH 為 0。如果 getMinimalDaysInFirstWeek() 變?yōu)?3,則 1 月 1 日到 1 月 3 日的 WEEK_OF_MONTH 為 1。
clear 方法將日歷字段設(shè)置為未定義。GregorianCalendar 為每個(gè)日歷字段使用以下默認(rèn)值(如果該值未定義)。 字段
默認(rèn)值
posted on 2006-09-20 21:37 dreamstone 閱讀(266) 評(píng)論(0) 編輯 收藏 所屬分類: 片段