function StartOfTheYear(const AValue: TDateTime): TDateTime;
function EndOfTheYear(const AValue: TDateTime): TDateTime;
function StartOfAYear(const AYear: Word): TDateTime;
function EndOfAYear(const AYear: Word): TDateTime;
function StartOfTheMonth(const AValue: TDateTime): TDateTime;
function EndOfTheMonth(const AValue: TDateTime): TDateTime;
function StartOfAMonth(const AYear, AMonth: Word): TDateTime;
function EndOfAMonth(const AYear, AMonth: Word): TDateTime;
function StartOfTheWeek(const AValue: TDateTime): TDateTime; {ISO 8601}
function EndOfTheWeek(const AValue: TDateTime): TDateTime; {ISO 8601}
function StartOfAWeek(const AYear, AWeekOfYear: Word; {ISO 8601}
const ADayOfWeek: Word = 1): TDateTime;
function EndOfAWeek(const AYear, AWeekOfYear: Word; {ISO 8601}
const ADayOfWeek: Word = 7): TDateTime;
所在單元:Unit DateUtils
1、function DateOf(const AValue: TDateTime): TDateTime; 描述使用 DateOf 函數用來把一個 TDateTime 類型的變量轉變成一個只帶有日期的 TDateTime 類型變量。例如: showmessage(DateTimetostr(dateof(now()))); 你得到的是 2003/03/19 而 showmessage(DateTimetostr((now()))); 得到的是 2003/03/19 10:50:49
2、function DateTimeToStr(DateTime: TDateTime): string; 描述 DateTimeToString 函數將 TDateTime 類型的參數 DateTime 轉換成一個字符串,使用給定的全局變量 ShortDateFormat 的格式,時間部分按照給定的全局變量 LongTimeFormat 的格式。其中 DateTime 為零的部分將不會顯示出來。 例如: ShortDateFormat:=yyyy mm dd; showmessage(DateTimetostr((now()))); 你將得到:2003 03 19 10:50:49
3、procedure DateTimeToString(var Result: string; const Format: string; DateTime: TDateTime); 描述: DateTimeToString 方法將TDateTime類型的參數DateTime 按照由參數Format提供的格式轉化成字符串,並保存在Result中。對於Format的格式類型,請看 Date-Time format strings 的幫助。 例如: DateTimeToString(result,yyyy mm dd,now()); 那么 result的結果為:2003 03 19 10:50:49
4、procedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TSystemTime); 描述:有時為了調用API函數來使用系統時間,你可以使用 DateTimeToSystemTime 方法,來將一個 TDateTime 類型的時間變量轉換成一個 TSystemTime 類型的系統時間。
5、function DateTimeToUnix(const AValue: TDateTime ): Int64; 描述:使用 DateTimeToUnix 函數來將一個 TDateTime 型時間變量轉換成一個相應的 Unix 格式的日期和時間。
6、function DateToStr(Date: TDateTime): string; 描述:使用 DateToStr 函數能得到 TDateTime 日期時間類型的日期部分。日期的轉換格式依賴於全局變量 ShortDateFormat。
7、function DayOf(const AValue: TDateTime): Word; 描述:對於給定的TDateTime類型的日期時間,使用 DayOf 函數能得到該日期是該月份的第幾天。該函數的返回數值在 1 到 31 之間注意:DayOf 函數得到的結果與 DayOfTheMonth 相同。 例如: showmessage(inttostr(dayof(now))); 得到的是:19 (今天是某月19日)
8、function DayOfTheMonth(const AValue: TDateTime): Word; 與 DayOf 相同。
9、function DayOfTheWeek(const AValue: TDateTime): Word; 描述:對於給定的TDateTime類型的日期時間,使用 DayOfTheWeek 函數能得到該日期是該星期的第幾天。DayOfTheWeek 函數的返回數值為 1 到 7,其中 1 表示星期一,而 7 表示星期日。注意:DayOfTheWeek 是 ISO 8601 標准的(此標准為星期一是一周的第一天)。對於一周的第一天是星期日的標准,如果想獲得星期數,請使用 DayOfWeek 函數。 Tip: To make the return value more readable, use the Day of week constants.
10、function DayOfTheYear(const AValue: TDateTime): Word; 描述:根據給定的日期時間參數AValue,使用 DayOfTheYear 函數能得到在該日期所在的年份中,該日期按照順序所計算的天數。因此,作為TDateTime類型的變量 “1月1日”在該函數所得到的結果為 1 ,“1月2日”所得到的結果為 2,“2月1日”所得到的結果就為 32,依次類推。
11、function DayOfWeek(Date: TDateTime): Integer; Description DayOfWeek returns the day of the week of the specified date as an integer between 1 and 7, where Sunday is the first day of the week and Saturday is the seventh. Note: DayOfWeek is not compliant with the ISO 8601 standard, which defines Monday as the first day of the week. For an ISO 8601 compliant version, use the DayOfTheWeek function instead. 描述:按照給定的TDateTime類型的參數Date,DayOfWeek 函數得到一周中的第幾天,從1到7。這里星期日是一周的第一天,而星期六是第七天。
12、function DaysBetween(const ANow, AThen: TDateTime): Integer; 描述:根據兩個TDateTime類型的日期時間變量 ANow 和 AThen,DaysBetween函數能得到兩者之間的天數的差距。 DaysBetween 僅僅根據天數的不同來計算。因此,對於 1999年12月31日 下午11點59分 到 2000年1月1日 11點58分,該函數得到的結果是 0,因為兩者之間的時間差別還差 1 分鍾才到 1 天。
13、function DaysInAMonth(const AYear, AMonth: Word): Word; 描述:對於各定的 年份和月份,DaysInAMonth 函數能得到該月份的總天數。年份應該為 從 1 到 9999 月份應該為 從 1 到 12
14、function DaysInAYear(const AYear: Word): Word; 描述:對於給定的年份,DaysInAYear函數能得到該年份的總天數。年份應該為 1 到 9999。
15、function DaysInMonth(const AValue: TDateTime): Word; 描述:根據給定的TDateTime類型的時間日期參數AValue,DaysInMonth函數能得到該月份的總天數。
16、function DaysInYear(const AValue: TDateTime): Word; 描述:根據給定的TDateTime類型的時間日期參數AValue,DaysInYear函數能得到該年份的總天數。
17、function DaySpan(const ANow, AThen: TDateTime): Double; 描述:根據兩個TDateTime類型的日期時間參數ANow和AThen,DaySpan能得到在天數上的差距。與 DaysBetween 函數不同,DaysBetween 函數 只是計算 整的天數,而 DaySpan函數會將不足一天的數也得到。注意:此函數返回的數值為 Double 型。
☆ Month 開頭的函數
18、function MonthOf(const AValue: TDateTime): Word; 描述:根據給定的TDateTime類型的時間日期參數AValue,MonthOf函數能得到該年份的該月份數。 MonthOf返回數值為 1 到 12。注意:MonthOf函數得到的數值與MonthOfTheYear函數相同
19、function MonthOfTheYear(const AValue: TDateTime): Word; 與MonthOf函數相同。
20、function MonthsBetween(const ANow, AThen: TDateTime): Integer; 描述:根據兩個給定的TDateTime類型的參數ANow和AThen,MonthsBetween函數能得到兩個日期在月份上差距數。因為月份的天數是不同的,所以 MonthsBetween 函數返回的是一個近似值,該近似值基於每個月份為 30.4375 天。不足一個月的數字將不被計算。因此,例如,對於 2月1日 到 2月28日,MonthsBetween 返回的數值為 0。同樣,對於 2月1日 到 3月1日,MonthsBetween 返回的數值也是 0。
21、function MonthSpan(const ANow, AThen: TDateTime): Double; 描述:根據兩個給定的TDateTime類型的參數ANow和AThen,MonthsBetween函數能得到兩個日期在月份上差距數。因為月份的天數是不同的,所以 MonthsBetween 函數返回的是一個近似值,該近似值基於每個月份為 30.4375 天。與 MonthsBetween 函數不同,MonthsBetween函數不計算不足一個月的數字,MonthSpan函數將會得到不足一個月的數字。注意:此函數返回的類型為 Double
22、function MonthStr(DateTime: TDateTime): string; Description HTTP message headers permit several formats for the representation of date and time values. MonthStr converts a TDateTime value into a string representing the month. MonthStr allows server applications to work with date values taken from HTTP request messages, without worrying about the details of how they are formatted.
☆ Week 開頭的函數
23、function WeekOf(const AValue: TDateTime): Word; 描述:根據TDateTime類型的日期時間參數AValu,WeekOf函數會得到該星期為一年的第幾個星期
24、function WeeksInAYear(const AYear: Word): Word; 描述: WeeksInAYear 函數根據年份得到在該年份中共包含多少個星期。
25、function WeeksBetween(const ANow, AThen: TDateTime): Integer; 描述:根據兩個TDateTime類型的日期時間參數ANow和AThen,WeeksBetween函數將得到這兩個時間在星期上的差數。如果差數不足一個星期,則忽略掉。
26、function WeekSpan(const ANow, AThen: TDateTime): Double; 描述:根據兩個TDateTime類型的日期時間參數ANow和AThen,WeeksBetween函數將得到這兩個時間在星期上的差數。如果差數不足一個星期,則WeekSpan函數不會忽略掉。注意:此函數的返回類型為 Double
☆ Year 開頭的函數
27、function YearOf(const AValue: TDateTime): Word; 描述:根據給定的TDateTime類型的日期時間參數AValue,YearOf函數能得到該日期的年份數字。 YearOf函數返回的數值為從 1 到 9999
28、function YearsBetween(const ANow, AThen: TDateTime): Integer; 描述:根據兩個給定的TDateTime類型的參數ANow和AThen,YearsBetween函數能得到兩個日期在年份上差距數。因為年份的天數是不同的,所以 YearsBetween 函數返回的是一個近似值,該近似值基於每年的天數為 365.25 天。不足的一年的差距將不會被計算。因此例如:對於 1月1日和12月31日,如果這兩個日期在同一年,則 YearsBetween 返回數值為 0;如果這兩個日期在臨近的年份,則 YearsBetween 函數返回數值為 1。
29、function YearSpan(const ANow, AThen: TDateTime): Double; 描述:根據兩個給定的TDateTime類型的參數ANow和AThen,YearsBetween函數能得到兩個日期在年份上差距數。因為年份的天數是不同的,所以 YearsBetween 函數返回的是一個近似值,該近似值基於每年的天數為 365.25 天。與 YearsBetween 函數不同,YearsBetween函數將忽略掉不足一年的數字,而 YearSpan 將計算不足一年的數字。注意:該函數返回類型為Double
30、function Yesterday: TDateTime; 描述: Yesterday函數能得到當前日期的前一天的日期,返回數值中不包括時間部分。例如:當前日期是 2003/3/19 則 showmessage(datetimetostr(Yesterday)); 將得到 2003/3/18
☆日期的合成
31、function EncodeDate(Year, Month, Day: Word): TDateTime; 描述: EncodeDate函數將根據參數 年份、月份、日子而得到一個TDateTime類型的時間變量。
32、function EncodeDateDay(const AYear, ADayOfYear: Word): TDateTime; 描述: EncodeDateDay將根據參數年份和天數,而得到一個TDateTime類型的時間變量。其中AYear 為 1 到 9999。 ADayOfYear 為日子在該年份順序排列的天數,例如,1月1日時,ADayOfYear為1, 2月2日時,ADayOfYear為2,3月1日時,ADayOfYear為32。
33、function EncodeDateMonthWeek(const AYear, AMonth, AWeekOfMonth: Word; const ADayOfWeek: Word = 1): TDateTime; 描述: EncodeDateMonthWeek 函數將根據參數年份、月份、星期數,星期幾,來得到一個TDateTime類型的時間變量。其中AYear 為 1 到 9999。其中AMonth 為 1 到 12。 AWeekOfMonth是在該月份的星期數,1 表示第一個星期,可能包含4天或更多的天數。注意,一個月的第一天如果是星期5,星期6或星期日,用表示這三天的AMonth數值必須設定為上一個月份的數字,同時 AWeekOfMonth 要設為在上一個月所在的星期數。同樣,如果一個月的最后一天是星期1,星期2,或星期3,那么用表示這三天的AMonth數值必須設定為下一個月份的數字,同時 AWeekOfMonth 為 1。 ADayOfWeek表示星期幾,星期一為1,星期二為2。
34、function EncodeDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word):TDateTime; 描述: EncodeDateTime 根據參數年份、月份、日子、小時、分、秒、毫秒來得到一個TDateTime類型日期時間。
35、function EncodeDateWeek(const AYear, AWeekOfYear: Word; const ADayOfWeek: Word = 1): TDateTime; 描述: EncodeDateWeek 根據參數 年份、星期數、星期幾來得到一個TDateTime類型日期時間。 AWeekOfYear是在該年份的星期數,1 表示第一個星期,可能包含4天或更多的天數。注意,一年的第一天如果是星期5,星期6或星期日,用表示這三天的AYear數值必須設定為上一個年份的數字,同時 AWeekOfYear 要設為在上一個年所在的星期數。同樣,如果一年的最后一天是星期1,星期2,或星期3,那么用表示這三天的AYear數值必須設定為下一個年份的數字,同時 AWeekOfYear 為 1。 ADayOfWeek表示星期幾,星期一為1,星期二為2。
36、function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime; 描述: EncodeTime函數根據參數小時、分、秒、毫秒得到個一個TDateTime數值。
☆日期的分解
37、procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word); 描述: DecodeDate從一個TDateTime類型參數Date中分解出得到年份、月份、日子。
38、procedure DecodeDateDay(const AValue: TDateTime; out AYear, ADayOfYear: Word); 描述: DecodeDateDay 方法會根據TDateTime類型參數AValue 得到相應的年份和日期總數。 ADayOfYear:1月1日,此數值為1;1月2日,此數值為2。
39、procedure DecodeDateMonthWeek(const AValue: TDateTime; out AYear, AMonth, AWeekOfMonth, ADayOfWeek: Word); 描述: DecodeDateMonthWeek方法根據TDateTime類型參數AValue 得到相應的年份、月份、月份中的第幾個星期、星期幾 AYear:年份 AMonth:月份,1 到 12 AWeekOfMonth:在該月份中的第幾個星期 ADayOfWeek:星期幾。星期一為1。
40、procedure DecodeDateTime(const AValue: TDateTime; out AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: Word); 描述: DecodeDateTime 方法根據TDateTime類型參數AValue 得到相應的年份、月份、日子、小時、分、秒、毫秒。
41、procedure DecodeDateWeek(const AValue: TDateTime; out AYear, AWeekOfYear, ADayOfWeek: Word); 描述: DecodeDateWeek方法根據TDateTime類型參數AValue 得到相應的年份、在該年中的第幾個星期.