delphi 日期加減(及日期函數)

delphi 日期加減(及日期函數)



學習下載專區 【2020-05-18 14:15】


Delphi里有現成的函數可以實現日期加減,是在DateUtils單元里的。

function IncYear(const AValue: TDateTime;

const ANumberOfYears: Integer = 1): TDateTime;

// function IncMonth is in SysUtils

function IncWeek(const AValue: TDateTime;

const ANumberOfWeeks: Integer = 1): TDateTime;

function IncDay(const AValue: TDateTime;

const ANumberOfDays: Integer = 1): TDateTime;

function IncHour(const AValue: TDateTime;

const ANumberOfHours: Int64 = 1): TDateTime;

function IncMinute(const AValue: TDateTime;

const ANumberOfMinutes: Int64 = 1): TDateTime;

function IncSecond(const AValue: TDateTime;

const ANumberOfSeconds: Int64 = 1): TDateTime;

function IncMilliSecond(const AValue: TDateTime;

const ANumberOfMilliSeconds: Int64 = 1): TDateTime;

Day 開頭的函數 
● 
Unit 

DateUtils 

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 

●function DateTimeToStr(DateTime: TDateTime): string; 

描述 
DateTimeToString 函數將 TDateTime 類型的參數 DateTime 轉換成一個 
字符串,使用給定的全局變量 ShortDateFormat 的格式,時間部分按照 
給定的全局變量 LongTimeFormat 的格式。 
其中 DateTime 為零的部分將不會顯示出來。 

例如: 
ShortDateFormat:=’yyyy mm dd’; 
showmessage(DateTimetostr((now()))); 
你將得到:2003 03 19 10:50:49 


●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 

●procedure DateTimeToSystemTime(DateTime: TDateTime; var SystemTime: TSystemTime); 

描述: 
有時為了調用API函數來使用系統時間,你可以使用 DateTimeToSystemTime 方法,來將一個 
TDateTime 類型的時間變量轉換成一個 TSystemTime 類型的 系統時間。 

●function DateTimeToUnix(const Avalue: TDateTime ): Int64; 

描述: 
使用 DateTimeToUnix 函數來將一個 TDateTime 型時間變量轉換成一個相應的 Unix 格式 
的日期和時間。 
Unix date-and-time values are encoded as the number of seconds that have elapsed 
since midnight at the start of January 1, 1970. 


●function DateToStr(Date: TDateTime): string; 

描述: 
使用 DateToStr 函數能得到 TDateTime 日期時間類型的日期部分。日期的轉換格式依賴于 
全局變量 ShortDateFormat。 

●function DayOf(const Avalue: TDateTime): Word; 

描述: 
對于給定的TDateTime類型的日期時間,使用 DayOf 函數能得到該日期是該月份的第幾天。 
該函數的返回數值在 1 到 31 之間 
注意:DayOf 函數得到的結果與 DayOfTheMonth 相同。 

例如: 
showmessage(inttostr(dayof(now))); 
得到的是:19 (今天是 某月19日) 

●function DayOfTheMonth(const Avalue: TDateTime): Word; 

與 DayOf 相同。 

●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. 

●function DayOfTheYear(const Avalue: TDateTime): Word; 

描述: 
根據給定的日期時間參數Avalue,使用 DayOfTheYear 函數能得到在該日期所在的年份中,該 
日期按照順序所計算的天數。因此,作為TDateTime類型的變量 “1月1日”在該函數所得到的 
結果為 1 ,“1月2日”所得到的結果為 2,“2月1日”所得到的結果就為 32,依次類推。 

●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。 
這里 星期日 是一周的第一天,而 星期六 是第七天。 

●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 天。 

●function DaysInAMonth(const AYear, AMonth: Word): Word; 

描述: 
對于各定的 年份和月份,DaysInAMonth 函數能得到 該月份的總天數。 
年份應該為 從 1 到 9999 
月份應該為 從 1 到 12 

●function DaysInAYear(const AYear: Word): Word; 

描述: 
對于給定的年份,DaysInAYear函數能得到該年份的總天數。 
年份應該為 1 到 9999。 

●function DaysInMonth(const Avalue: TDateTime): Word; 

描述: 
根據給定的TDateTime類型的時間日期參數Avalue,DaysInMonth函數能得到該月份的總天數。 

●function DaysInYear(const Avalue: TDateTime): Word; 

描述: 
根據給定的TDateTime類型的時間日期參數Avalue,DaysInYear函數能得到該年份的總天數。 

●function DaySpan(const ANow, AThen: TDateTime): Double; 

描述: 
根據兩個TDateTime類型的日期時間參數ANow和AThen,DaySpan能得到在天數上的差距。 
與 DaysBetween 函數不同,DaysBetween 函數 只是計算 整的天數,而 DaySpan函數會 
將不足一天的數也得到。 
注意:此函數返回的數值為 Double 型。 

☆ Month 開頭的函數 

●function MonthOf(const Avalue: TDateTime): Word; 

描述: 
根據給定的TDateTime類型的時間日期參數Avalue,MonthOf函數能得到該年份的該月份數。 
MonthOf返回數值為 1 到 12。 
注意:MonthOf函數得到的數值與MonthOfTheYear函數相同 

●function MonthOfTheYear(const Avalue: TDateTime): Word; 

與MonthOf函數相同。 

●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。 

●function MonthSpan(const ANow, AThen: TDateTime): Double; 

描述: 
根據兩個給定的TDateTime類型的參數ANow和AThen,MonthsBetween函數能得到兩個日期在月份 
上差距數。因為月份的天數是不同的,所以 MonthsBetween 函數返回的是一個近似值,該近似 
值基于每個月份為 30.4375 天。與 MonthsBetween 函數不同,MonthsBetween函數不計算不足 
一個月的數字,MonthSpan函數將會得到不足一個月的數字。 
注意:此函數返回的類型為 Double 

●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 開頭的函數 

●function WeekOf(const Avalue: TDateTime): Word; 

描述: 
根據TDateTime類型的日期時間參數AValu,WeekOf函數會得到該星期為一年的第幾個 
星期。 

●function WeeksInAYear(const AYear: Word): Word; 

描述: 
WeeksInAYear 函數根據年份得到在該年份中共包含多少個星期。 

●function WeeksBetween(const ANow, AThen: TDateTime): Integer; 

描述: 
根據兩個TDateTime類型的日期時間參數ANow和AThen,WeeksBetween函數將得到這兩個時間在 
星期上的差數。如果差數不足一個星期,則忽略掉。 

●function WeekSpan(const ANow, AThen: TDateTime): Double; 

描述: 
根據兩個TDateTime類型的日期時間參數ANow和AThen,WeeksBetween函數將得到這兩個時間在 
星期上的差數。如果差數不足一個星期,則WeekSpan函數不會忽略掉。 
注意:此函數的返回類型為 Double 

☆ Year 開頭的函數 

●function YearOf(const Avalue: TDateTime): Word; 

描述: 
根據給定的TDateTime類型的日期時間參數Avalue,YearOf函數能得到該日期的年份數字。 
YearOf函數返回的數值為從 1 到 9999 

●function YearsBetween(const ANow, AThen: TDateTime): Integer; 

描述: 
根據兩個給定的TDateTime類型的參數ANow和AThen,YearsBetween函數能得到兩個日期在年份 
上差距數。因為年份的天數是不同的,所以 YearsBetween 函數返回的是一個近似值,該近似 
值基于每年的天數為 365.25 天。不足的一年的差距將不會被計算。 
因此例如:對于 1月1日和12月31日,如果這兩個日期在同一年,則 YearsBetween 返回數值 
為 0;如果這兩個日期在臨近的年份,則 YearsBetween 函數返回數值為 1。 

●function YearSpan(const ANow, AThen: TDateTime): Double; 

描述: 
根據兩個給定的TDateTime類型的參數ANow和AThen,YearsBetween函數能得到兩個日期在年份 
上差距數。因為年份的天數是不同的,所以 YearsBetween 函數返回的是一個近似值,該近似 
值基于每年的天數為 365.25 天。與 YearsBetween 函數不同,YearsBetween函數將忽略掉不 
足一年的數字,而 YearSpan 將計算不足一年的數字。 
注意:該函數返回類型為Double 


●function Yesterday: TDateTime; 

描述: 
Yesterday函數能得到當前日期的前一天的日期,返回數值中不包括時間部分。 
例如: 
當前日期是 2003/3/19 
則 showmessage(datetimetostr(Yesterday)); 
將得到 2003/3/18 

☆日期的合成 
●function EncodeDate(Year, Month, Day: Word): TDateTime; 

描述: 
EncodeDate函數將根據參數 年份、月份、日子 而得到一個TDateTime類型的時間變量。 

●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。 

●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。 

●function EncodeDateTime(const AYear, AMonth, ADay, AHour, AMinute, ASecond, AMilliSecond: 

Word):TDateTime; 

描述: 
EncodeDateTime 根據參數 年份、月份、日子、小時、分、秒、毫秒 來得到一個TDateTime類型 
日期時間。 

●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。 

●function EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime; 

描述: 
EncodeTime函數根據參數 小時、分、秒、毫秒 得到個一個TDateTime數值。 

☆日期的分解 

●procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word); 

描述: 
DecodeDate從一個TDateTime類型參數Date中分解出得到年份、月份、日子。 

●procedure DecodeDateDay(const Avalue: TDateTime; out AYear, ADayOfYear: Word); 

描述: 
DecodeDateDay 方法會根據TDateTime類型參數Avalue 得到相應的年份和日期總數。 
ADayOfYear:1月1日,此數值為1;1月2日,此數值為2。 

●procedure DecodeDateMonthWeek(const Avalue: TDateTime; out AYear, AMonth, AWeekOfMonth, 

ADayOfWeek: Word); 

描述: 
DecodeDateMonthWeek方法根據TDateTime類型參數Avalue 得到相應的年份、月份、月份中的第幾個 
星期、星期幾 
AYear:年份 
AMonth:月份,1 到 12 
AWeekOfMonth:在該月份中的第幾個星期 
ADayOfWeek:星期幾。星期一為1。 

●procedure DecodeDateTime(const Avalue: TDateTime; out AYear, AMonth, ADay, AHour, AMinute, 

ASecond, AMilliSecond: Word); 

描述: 
DecodeDateTime 方法根據TDateTime類型參數Avalue 得到相應的年份、月份、日子、小時、分、秒、 
毫秒。 

●procedure DecodeDateWeek(const Avalue: TDateTime; out AYear, AWeekOfYear, ADayOfWeek: Word); 

描述: 
DecodeDateWeek方法根據TDateTime類型參數Avalue 得到相應的年份、在該年中的第幾個星期、星期幾。

文章來源:https://blog.csdn.net/zengcong2013/article/details/11502987

友情鏈接:
SQL數據庫修復專家
  • 關注微博
    聯系QQ
  • 二維碼
  • 掃一掃加關注

——信陽市速全網絡科技有限公司——

版權所有:信陽市速全網絡科技有限公司

豫ICP備19030104號-2

97精品成人公开免费视频_久久综合精品视频网_国产女女人视频免费播放_亚洲另类无码专区首页