亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dateutil.pas

?? RX Library contains a large number of components, objects and routines for Borland Delphi with full
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
{*******************************************************}
{                                                       }
{         Delphi VCL Extensions (RX)                    }
{                                                       }
{         Copyright (c) 1995, 1996 AO ROSNO             }
{         Copyright (c) 1997, 1998 Master-Bank          }
{                                                       }
{*******************************************************}

unit DateUtil;

{$I RX.INC}
{$B-,V-,R-,Q-}

interface

  uses RTLConsts;

function CurrentYear: Word;
function IsLeapYear(AYear: Integer): Boolean;
function DaysPerMonth(AYear, AMonth: Integer): Integer;
function FirstDayOfPrevMonth: TDateTime;
function LastDayOfPrevMonth: TDateTime;
function FirstDayOfNextMonth: TDateTime;
function ExtractDay(ADate: TDateTime): Word;
function ExtractMonth(ADate: TDateTime): Word;
function ExtractYear(ADate: TDateTime): Word;
function IncDate(ADate: TDateTime; Days, Months, Years: Integer): TDateTime;
function IncDay(ADate: TDateTime; Delta: Integer): TDateTime;
function IncMonth(ADate: TDateTime; Delta: Integer): TDateTime;
function IncYear(ADate: TDateTime; Delta: Integer): TDateTime;
function ValidDate(ADate: TDateTime): Boolean;
procedure DateDiff(Date1, Date2: TDateTime; var Days, Months, Years: Word);
function MonthsBetween(Date1, Date2: TDateTime): Double;
function DaysInPeriod(Date1, Date2: TDateTime): Longint;
  { Count days between Date1 and Date2 + 1, so if Date1 = Date2 result = 1 }
function DaysBetween(Date1, Date2: TDateTime): Longint;
  { The same as previous but if Date2 < Date1 result = 0 }

function IncTime(ATime: TDateTime; Hours, Minutes, Seconds, MSecs: Integer): TDateTime;
function IncHour(ATime: TDateTime; Delta: Integer): TDateTime;
function IncMinute(ATime: TDateTime; Delta: Integer): TDateTime;
function IncSecond(ATime: TDateTime; Delta: Integer): TDateTime;
function IncMSec(ATime: TDateTime; Delta: Integer): TDateTime;
function CutTime(ADate: TDateTime): TDateTime; { Set time to 00:00:00:00 }

type
  TDateOrder = (doMDY, doDMY, doYMD);
  TDayOfWeekName = (Sun, Mon, Tue, Wed, Thu, Fri, Sat);
  TDaysOfWeek = set of TDayOfWeekName;

{ String to date conversions }
function GetDateOrder(const DateFormat: string): TDateOrder;
function MonthFromName(const S: string; MaxLen: Byte): Byte;
function StrToDateDef(const S: string; Default: TDateTime): TDateTime;
function StrToDateFmt(const DateFormat, S: string): TDateTime;
function StrToDateFmtDef(const DateFormat, S: string; Default: TDateTime): TDateTime;
function DefDateFormat(FourDigitYear: Boolean): string;
function DefDateMask(BlanksChar: Char; FourDigitYear: Boolean): string;

{$IFDEF WIN32}
function FormatLongDate(Value: TDateTime): string;
function FormatLongDateTime(Value: TDateTime): string;
{$ENDIF}

const
  DefaultDateOrder = doDMY;

{$IFDEF USE_FOUR_DIGIT_YEAR}
var
  FourDigitYear: Boolean;
{$ELSE}
function FourDigitYear: Boolean;
{$ENDIF USE_FOUR_DIGIT_YEAR}

const
  CenturyOffset: Byte = 60;
{$IFDEF WIN32}
  NullDate: TDateTime = {-693594} 0;
{$ELSE}
  NullDate: TDateTime = 0;
{$ENDIF}

implementation

uses SysUtils, {$IFDEF WIN32} Windows, {$ENDIF} Consts, rxStrUtils;

function IsLeapYear(AYear: Integer): Boolean;
begin
  Result := (AYear mod 4 = 0) and ((AYear mod 100 <> 0) or (AYear mod 400 = 0));
end;

function DaysPerMonth(AYear, AMonth: Integer): Integer;
const
  DaysInMonth: array[1..12] of Integer =
    (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
begin
  Result := DaysInMonth[AMonth];
  if (AMonth = 2) and IsLeapYear(AYear) then Inc(Result); { leap-year Feb is special }
end;

function FirstDayOfNextMonth: TDateTime;
var
  Year, Month, Day: Word;
begin
  DecodeDate(Date, Year, Month, Day);
  Day := 1;
  if Month < 12 then Inc(Month)
  else begin
    Inc(Year);
    Month := 1;
  end;
  Result := EncodeDate(Year, Month, Day);
end;

function FirstDayOfPrevMonth: TDateTime;
var
  Year, Month, Day: Word;
begin
  DecodeDate(Date, Year, Month, Day);
  Day := 1;
  if Month > 1 then Dec(Month)
  else begin
    Dec(Year);
    Month := 12;
  end;
  Result := EncodeDate(Year, Month, Day);
end;

function LastDayOfPrevMonth: TDateTime;
var
  D: TDateTime;
  Year, Month, Day: Word;
begin
  D := FirstDayOfPrevMonth;
  DecodeDate(D, Year, Month, Day);
  Day := DaysPerMonth(Year, Month);
  Result := EncodeDate(Year, Month, Day);
end;

function ExtractDay(ADate: TDateTime): Word;
var
  M, Y: Word;
begin
  DecodeDate(ADate, Y, M, Result);
end;

function ExtractMonth(ADate: TDateTime): Word;
var
  D, Y: Word;
begin
  DecodeDate(ADate, Y, Result, D);
end;

function ExtractYear(ADate: TDateTime): Word;
var
  D, M: Word;
begin
  DecodeDate(ADate, Result, M, D);
end;

function IncDate(ADate: TDateTime; Days, Months, Years: Integer): TDateTime;
var
  D, M, Y: Word;
  Day, Month, Year: Longint;
begin
  DecodeDate(ADate, Y, M, D);
  Year := Y; Month := M; Day := D;
  Inc(Year, Years);
  Inc(Year, Months div 12);
  Inc(Month, Months mod 12);
  if Month < 1 then begin
    Inc(Month, 12);
    Dec(Year);
  end
  else if Month > 12 then begin
    Dec(Month, 12);
    Inc(Year);
  end;
  if Day > DaysPerMonth(Year, Month) then Day := DaysPerMonth(Year, Month);
  Result := EncodeDate(Year, Month, Day) + Days + Frac(ADate);
end;

procedure DateDiff(Date1, Date2: TDateTime; var Days, Months, Years: Word);
{ Corrected by Anatoly A. Sanko (2:450/73) }
var
  DtSwap: TDateTime;
  Day1, Day2, Month1, Month2, Year1, Year2: Word;
begin
  if Date1 > Date2 then begin
    DtSwap := Date1;
    Date1 := Date2;
    Date2 := DtSwap;
  end;
  DecodeDate(Date1, Year1, Month1, Day1);
  DecodeDate(Date2, Year2, Month2, Day2);
  Years := Year2 - Year1;
  Months := 0;
  Days := 0;
  if Month2 < Month1 then begin
    Inc(Months, 12);
    Dec(Years);
  end;
  Inc(Months, Month2 - Month1);
  if Day2 < Day1 then begin
    Inc(Days, DaysPerMonth(Year1, Month1));
    if Months = 0 then begin
      Dec(Years);
      Months := 11;
    end
    else Dec(Months);
  end;
  Inc(Days, Day2 - Day1);
end;

function IncDay(ADate: TDateTime; Delta: Integer): TDateTime;
begin
  Result := ADate + Delta;
end;

function IncMonth(ADate: TDateTime; Delta: Integer): TDateTime;
begin
  Result := IncDate(ADate, 0, Delta, 0);
end;

function IncYear(ADate: TDateTime; Delta: Integer): TDateTime;
begin
  Result := IncDate(ADate, 0, 0, Delta);
end;

function MonthsBetween(Date1, Date2: TDateTime): Double;
var
  D, M, Y: Word;
begin
  DateDiff(Date1, Date2, D, M, Y);
  Result := 12 * Y + M;
  if (D > 1) and (D < 7) then Result := Result + 0.25
  else if (D >= 7) and (D < 15) then Result := Result + 0.5
  else if (D >= 15) and (D < 21) then Result := Result + 0.75
  else if (D >= 21) then Result := Result + 1;
end;

function IsValidDate(Y, M, D: Word): Boolean;
begin
  Result := (Y >= 1) and (Y <= 9999) and (M >= 1) and (M <= 12) and
    (D >= 1) and (D <= DaysPerMonth(Y, M));
end;

function ValidDate(ADate: TDateTime): Boolean;
var
  Year, Month, Day: Word;
begin
  try
    DecodeDate(ADate, Year, Month, Day);
    Result := IsValidDate(Year, Month, Day);
  except
    Result := False;
  end;
end;

function DaysInPeriod(Date1, Date2: TDateTime): Longint;
begin
  if ValidDate(Date1) and ValidDate(Date2) then
    Result := Abs(Trunc(Date2) - Trunc(Date1)) + 1
  else Result := 0;
end;

function DaysBetween(Date1, Date2: TDateTime): Longint;
begin
  Result := Trunc(Date2) - Trunc(Date1) + 1;
  if Result < 0 then Result := 0;
end;

function IncTime(ATime: TDateTime; Hours, Minutes, Seconds,
  MSecs: Integer): TDateTime;
begin
  Result := ATime + (Hours div 24) + (((Hours mod 24) * 3600000 +
    Minutes * 60000 + Seconds * 1000 + MSecs) / MSecsPerDay);
  if Result < 0 then Result := Result + 1;
end;

function IncHour(ATime: TDateTime; Delta: Integer): TDateTime;
begin
  Result := IncTime(ATime, Delta, 0, 0, 0);
end;

function IncMinute(ATime: TDateTime; Delta: Integer): TDateTime;
begin
  Result := IncTime(ATime, 0, Delta, 0, 0);
end;

function IncSecond(ATime: TDateTime; Delta: Integer): TDateTime;
begin
  Result := IncTime(ATime, 0, 0, Delta, 0);
end;

function IncMSec(ATime: TDateTime; Delta: Integer): TDateTime;
begin
  Result := IncTime(ATime, 0, 0, 0, Delta);
end;

function CutTime(ADate: TDateTime): TDateTime;
begin
  Result := Trunc(ADate);
end;

function CurrentYear: Word; 
var
  SystemTime: TSystemTime;
begin
  GetLocalTime(SystemTime);
  Result := SystemTime.wYear;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆精品在线看| 精品在线免费观看| 欧美国产日本韩| 国产亚洲欧美中文| 日韩欧美视频在线| 日韩欧美不卡一区| 久久亚洲综合色一区二区三区| 日韩一区二区三免费高清| 日韩精品一区在线观看| 久久综合精品国产一区二区三区| 337p粉嫩大胆噜噜噜噜噜91av| 精品日本一线二线三线不卡| 久久麻豆一区二区| 亚洲国产精品二十页| 1024精品合集| 亚洲小少妇裸体bbw| 免费观看一级特黄欧美大片| 国产精品自拍av| 成人av网站免费观看| 欧美午夜精品电影| 欧美一卡二卡在线| 国产精品伦一区二区三级视频| 亚洲综合激情小说| 久久精品国产澳门| av电影一区二区| 欧美日韩国产美女| 国产亚洲精品久| 亚洲高清在线视频| 国产九九视频一区二区三区| 色视频欧美一区二区三区| 欧美群妇大交群中文字幕| 久久精品综合网| 亚洲国产精品久久久久婷婷884 | 亚洲视频你懂的| 日韩精品乱码免费| 成人综合婷婷国产精品久久蜜臀| 91久久精品午夜一区二区| 精品国产成人系列| 亚洲v中文字幕| 不卡大黄网站免费看| 日韩亚洲电影在线| 玉米视频成人免费看| 国产剧情一区二区| 欧美一区二区播放| 自拍偷拍欧美激情| 国产一区二区免费在线| 日本电影亚洲天堂一区| 久久婷婷综合激情| 亚洲激情校园春色| 国产成人av电影在线观看| 91麻豆精品国产91久久久久久 | 亚洲一区二区三区四区在线 | 国内外精品视频| 欧美调教femdomvk| 亚洲视频一二区| 国产精品1区2区3区| 欧美日韩午夜在线视频| 亚洲人成网站在线| 国产成人欧美日韩在线电影| 日韩美女视频在线| 天天操天天综合网| 欧美日韩视频专区在线播放| 亚洲精品久久嫩草网站秘色| 成人午夜av电影| 国产日韩欧美麻豆| 国产很黄免费观看久久| 精品国产麻豆免费人成网站| 蜜桃91丨九色丨蝌蚪91桃色| 欧美二区在线观看| 日日骚欧美日韩| 欧美一区二区三区日韩视频| 亚洲国产成人91porn| 在线日韩av片| 午夜精品福利在线| 欧美日韩国产不卡| 视频一区二区中文字幕| 4438x亚洲最大成人网| 亚洲国产一区二区视频| 欧美视频一区二区在线观看| 天堂一区二区在线免费观看| 欧美日韩高清影院| 美女精品一区二区| 久久久久久久国产精品影院| 国产成人免费在线观看不卡| 中文字幕精品—区二区四季| 9人人澡人人爽人人精品| 国产精品国产精品国产专区不片 | 国产精品入口麻豆原神| 国产精品自产自拍| 136国产福利精品导航| 欧美午夜免费电影| 欧美aaaaa成人免费观看视频| 欧美成人乱码一区二区三区| 国产一区二区免费在线| 国产精品第13页| 欧美视频完全免费看| 欧美一级生活片| 日韩vs国产vs欧美| 国产欧美一区二区精品性色| 成人av网站在线观看| 亚洲亚洲人成综合网络| 精品久久久久久久久久久久久久久| 精品一区二区三区在线视频| 国产精品国产三级国产aⅴ入口 | 成人动漫一区二区在线| 亚洲小少妇裸体bbw| 久久美女艺术照精彩视频福利播放| 成人手机在线视频| 丝袜美腿亚洲综合| 国产精品久久久久久久浪潮网站 | 久久久不卡网国产精品一区| 92国产精品观看| 美女视频黄免费的久久| 中文字幕在线一区| 欧美一级二级三级蜜桃| 97se亚洲国产综合在线| 韩国欧美国产一区| 亚洲a一区二区| 自拍偷拍亚洲激情| 久久亚洲综合av| 69堂亚洲精品首页| 色成人在线视频| 国内精品国产三级国产a久久| 曰韩精品一区二区| 国产精品的网站| 精品欧美一区二区久久 | 老司机精品视频在线| 亚洲黄色免费电影| 欧美国产禁国产网站cc| 精品国产第一区二区三区观看体验| 欧美又粗又大又爽| 高清不卡一区二区在线| 久久se精品一区二区| 日韩综合一区二区| 亚洲综合精品久久| 国产精品久久久久久亚洲毛片| www激情久久| 日韩欧美123| 日韩一区二区三区观看| 欧美高清激情brazzers| 欧美最猛性xxxxx直播| 99re8在线精品视频免费播放| 成人小视频免费在线观看| 韩国毛片一区二区三区| 九色porny丨国产精品| 另类综合日韩欧美亚洲| 石原莉奈在线亚洲二区| 亚洲va国产天堂va久久en| 亚洲卡通动漫在线| 亚洲狠狠丁香婷婷综合久久久| 亚洲蜜臀av乱码久久精品蜜桃| 中日韩av电影| 亚洲欧美国产高清| 亚洲品质自拍视频| 亚洲免费观看高清完整版在线| 亚洲视频一二三| 国产精品久久久久久久久久免费看| 国产片一区二区三区| 国产女同性恋一区二区| 中文字幕日本不卡| 亚洲图片有声小说| 亚洲专区一二三| 亚洲一区二区在线观看视频| 亚洲国产综合人成综合网站| 亚洲国产精品久久人人爱| 免费成人小视频| 高清在线不卡av| 99久久综合国产精品| 色又黄又爽网站www久久| 777午夜精品免费视频| 欧美变态tickle挠乳网站| 欧美不卡激情三级在线观看| 精品福利二区三区| 日本一区二区高清| 一区二区三区日韩欧美精品| 亚洲高清一区二区三区| 亚洲成人动漫在线免费观看| 久久国产成人午夜av影院| 国产成人av电影免费在线观看| 色综合久久88色综合天天免费| 一本久道久久综合中文字幕| 欧美精品在线视频| 欧美成人精品1314www| 精品粉嫩超白一线天av| 亚洲女人的天堂| 久久国产免费看| 成人激情午夜影院| 欧美午夜精品久久久久久孕妇| 91精品国产色综合久久ai换脸 | 午夜精品福利一区二区三区蜜桃| 美女在线一区二区| 99久久国产综合精品麻豆| 欧美日韩国产片| 国产婷婷色一区二区三区四区 | 亚洲一区二区三区四区在线观看 | 狠狠v欧美v日韩v亚洲ⅴ| 99久久精品国产网站| 欧美三级韩国三级日本三斤 | 成人性视频免费网站| 91精品国产综合久久精品app|