• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

delphi时间日期函数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
   1 unit DateProcess;
   2 interface
   3 
   4 const
   5 DayOfWeekStrings: array [1..7] of String = ('SUNDAY', 'MONDAY', 'TUESDAY',
   6 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY');
   7 
   8 //: English Calendar Months - used for Month2Int
   9 const
  10 MonthStrings: array [1..12] of String = ('JANUARY', 'FEBRUARY', 'MARCH',
  11 'APRIL','MAY', 'JUNE', 'JULY', 'AUGUST', 'SEPTEMBER', 'OCTOBER',
  12 'NOVEMBER', 'DECEMBER');
  13 const
  14  //:中文显示星期─要用Week2CWeek()函数转换
  15     DayOfCWeekStrings: array [1..7] of String = ('星期日','星期一',
  16 '星期二','星期三','星期四','星期五','星期六');
  17 const
  18  //: 中文显示月份─要用Month2CMonth()函数转换
  19 MonthCStrings: array [1..12] of String = ('一月', '二月', '三月','四月','五月',
  20                                               '六月', '七月', '八月', '九月', '十月','十一月', '十二月');
  21                                               
  22 const
  23   OneDay         = 1.0;
  24   OneHour        = OneDay / 24.0;
  25   OneMinute      = OneHour / 60.0;
  26   OneSecond      = OneMinute / 60.0;
  27   OneMillisecond = OneSecond / 1000.0;
  28 
  29 //--- 年度函数 ---
  30 
  31 //检查日期值是否是润年
  32 function IsLeapYear (Year: Word): Boolean;
  33 
  34 //传回日期值年度的第一天
  35 function GetFirstDayOfYear (const Year: Word): TDateTime;
  36 
  37 //传回日期值年度的最后一天
  38 function GetLastDayOfYear (const Year: Word): TDateTime;
  39 
  40 //传回日期值年度的第一星期天的日期
  41 function GetFirstSundayOfYear (const Year: Word): TDateTime;
  42 
  43 //传回西洋日期的格式MM/DD/YY
  44 function GetMDY (const DT: TDateTime): String;
  45 
  46 //--- 日期型的转换 ---
  47 
  48 //日期转成字符串
  49 //如果是错误将传一空值
  50 function Date2Str (const DT: TDateTime): String;
  51 
  52 //传回日期值的日期
  53 function GetDay (const DT: TDateTime): Word;
  54 
  55 //:传回日期值的月份
  56 function GetMonth (const DT: TDateTime): Word;
  57 
  58 //: 传回日期值的年份
  59 function GetYear (const DT: TDateTime): Word;
  60 
  61 //:将日期的值取出时间的值
  62 function Time2Hr (const DT: TDateTime): Word;
  63 
  64 //:将日期的值取出分锺的值
  65 function Time2Min (const DT: TDateTime): Word;
  66 
  67 //:将日期的值取出秒数的值
  68 function Time2Sec (const DT: TDateTime): Word;
  69 
  70 //:将日期的值取出微秒的值
  71 function Time2MSec (const DT: TDateTime): Word;
  72 
  73 //传回目前的年度
  74 function ThisYear: Word;
  75 
  76 //传回目前的月份
  77 function ThisMonth: Word;
  78 
  79 //传回目前的日期
  80 function ThisDay: Word;
  81 
  82 //传回目前的时间
  83 function ThisHr: Word;
  84 
  85 //传回目前的分锺
  86 function ThisMin: Word;
  87 
  88 //传回目前的秒数
  89 function ThisSec: Word;
  90 
  91 //将英文的星期转成整数值
  92 //例如EDOWToInt(''SUNDAY')=1
  93 function EDOWToInt (const DOW: string): Integer;
  94 
  95 //将英文的月份转成整数值的月
  96 //例如EMonthToInt('JANUARY')=1
  97 function EMonthToInt (const Month: string): Integer;
  98 
  99 function GetCMonth(const DT: TDateTime): String;
 100 //传回中文显示的月份
 101 
 102 function GetC_Today: string;
 103 //传回中国的日期
 104 //例如: GetC_Today传回值为89/08/11
 105 
 106 Function TransC_DateToE_Date(Const CDT :String) :TDateTime;
 107 //将民国的年月日转换为公元的YYYY/MM/DD
 108 //2001/02/02加入 例如:TransC_DateToE_Date('90年2月1日')传回值是2001/2/1
 109 
 110 function GetCWeek(const DT: TDateTime): String;
 111 //传回值为中文显示的星期  例如:GETCWeek(2000/08/31)=星期四
 112 
 113 function GetLastDayForMonth(const DT: TDateTime):TDateTime;
 114 //传回本月的最后一天
 115 
 116 function GetFirstDayForMonth (const DT :TDateTime): TDateTime;
 117 //取得月份的第一天
 118 
 119 function GetLastDayForPeriorMonth(const DT: TDateTime):TDateTime;
 120 //传回上个月的最后一天
 121 
 122 function GetFirstDayForPeriorMonth (const DT :TDateTime): TDateTime;
 123 //取得上个月份的第一天
 124 
 125 function ROCDATE(DD:TDATETIME;P:integer):string;
 126 {转换某日期为民国0YYMMDD 型式字符串,例如:ROCDATE(Now,0)='900304' }
 127 {P=0 不加'年'+'月'+'日'}
 128 {P=1 加'年'+'月'+'日'}
 129 
 130 {------------------- 日期和时间的计算函数------------------}
 131 
 132 //传回两个日期相减值的分锺数
 133 function MinutesApart (const DT1, DT2: TDateTime): Word;
 134 
 135 //调整年度的时间
 136 //例如AdjustDateYear(Now,1998)传回值为'1998/02/25'
 137 function AdjustDateYear (const D: TDateTime; const Year: Word): TDateTime;
 138 
 139 //增加n个分钟的时间
 140 function AddMins (const DT: TDateTime; const Mins: Extended): TDateTime;
 141 
 142 //增加n个小时的时间
 143 function AddHrs (const DT: TDateTime; const Hrs: Extended): TDateTime;
 144 
 145 //可将日期加上欲增加的天数为得到的值   例如:AddDays(2000/08/31,10)=2000/09/10
 146 function AddDays (const DT: TDateTime; const Days: Extended): TDateTime;
 147 
 148 //增加n周的时间
 149 //例如:AddWeeks(2001/01/21,2)传回值为'2001/02/4'
 150 function AddWeeks (const DT: TDateTime; const Weeks: Extended): TDateTime;
 151 
 152 //增加n个月的时间
 153 function AddMonths (const DT: TDateTime; const Months: Extended): TDateTime;
 154 
 155 //增加n个年的时间
 156 function AddYrs (const DT: TDateTime; const Yrs: Extended): TDateTime;
 157 
 158 //传回向前算的N个分锺
 159 function SubtractMins (const DT: TDateTime; const Mins: Extended): TDateTime;
 160 
 161 //传回向前算的N个小时
 162 function SubtractHrs (const DT: TDateTime; const Hrs: Extended): TDateTime;
 163 
 164 //传回向前算的N个天
 165 function SubtractDays (const DT: TDateTime; const Days: Extended): TDateTime;
 166 
 167 //传回向前算的N个周
 168 function SubtractWeeks (const DT: TDateTime; const Weeks: Extended): TDateTime;
 169 
 170 //传回向前算的N个月,例如:SubtractMonths('2000/11/21',3)传回'2000/08/22'
 171 function SubtractMonths (const DT: TDateTime; const Months: Extended): TDateTime;
 172 
 173 //传回日期值的本月份的最后一天
 174 function GetLastDayOfMonth (const DT: TDateTime): TDateTime;
 175 
 176 //传回日期值的本月份的第一天
 177 function GetFirstDayOfMonth (const DT: TDateTime): TDateTime;
 178 
 179 //传回年度第一周的第一个星期天的日期
 180 function StartOfWeek (const DT: TDateTime): TDateTime;
 181 
 182 //传回年度最后一周的最后一个星期天的日期
 183 function EndOfWeek (const DT: TDateTime): TDateTime;
 184 
 185 //将秒数转换为时分秒
 186 function Hrs_Min_Sec (Secs: Extended): string;
 187 
 188 //: 比较两的日期值是否是同月如果是为真
 189 function DatesInSameMonth (const DT1, DT2: TDateTime): Boolean;
 190 
 191 //: 比较两的日期值是否是同年如果是为真
 192 function DatesInSameYear (const DT1, DT2: TDateTime): Boolean;
 193 
 194 //: 比较两的日期值是否是同年和同月如果是为真
 195 function DatesInSameMonthYear (const DT1, DT2: TDateTime): Boolean;
 196 
 197 //:传回两个日期相减值的天数
 198 //例如:DaysApart是DT2减DT1
 199 function DaysApart (const DT1, DT2: TDateTime): LongInt;
 200 
 201 //传回两个日期相减值的周数
 202 //例如:ExactWeeksApart是DT2减DT1
 203 function ExactWeeksApart (const DT1, DT2: TDateTime): Extended;
 204 
 205 //传回两个日期相减值的周数
 206 //例如:ExactWeeksApart是DT2减DT1
 207 function WeeksApart (const DT1, DT2: TDateTime): LongInt;
 208 
 209 //: 如果是真表示日期为润年
 210 function DateIsLeapYear (const DT: TDateTime): Boolean;
 211 
 212 //: 传回日期值本月份的天数
 213 // DaysThisMonth(Now)= 31,三月有31天
 214 function DaysThisMonth (const DT: TDateTime): Byte;
 215 
 216 //: 传回日期值的本年度的月份中的日数,还有几天
 217 //DaysLeftInMonth('2001/04/28')传回值2
 218 function DaysLeftInMonth (const DT: TDateTime): Byte;
 219 
 220 //: 传回日期值的本年度的月份中的日数,还有几天
 221 function DaysInMonth (const DT: TDateTime): Byte;
 222 //: 传回日期值的本年度的天数,如果是润年有366天;不是就有365天
 223 function DaysInYear (const DT: TDateTime): Word;
 224 
 225 //: 传回日期值中本年度已过了几天
 226 //例如:DayOfYear(now)=119
 227 function DayOfYear (const DT: TDateTime): Word;
 228 
 229 //: 传回今天的日期在本年度过了几天
 230 //例如: ThisDayOfYear=119
 231 function ThisDayOfYear: Word;
 232 
 233 //:传回今年度还有几天
 234 function DaysLeftInYear (const DT: TDateTime): Word;
 235 
 236 //传回日期值的季别
 237 //例如:WhichQuarter(now)=2
 238 function WhichQuarter (const DT: TDateTime): Byte;
 239 
 240 //传回年龄,依现在其日期减出生的日期
 241 function AgeAtDate (const DOB, DT: TDateTime): Integer;
 242 
 243 //传回年龄,依现在其日期减出生的日期
 244 function AgeNow (const DOB: TDateTime): Integer;
 245 
 246 //传回年龄,依现在其日期减出生的日期
 247 function AgeAtDateInMonths (const DOB, DT: TDateTime): Integer;
 248 
 249 //传回年龄,依现在其日期减出生的日期
 250 function AgeNowInMonths (const DOB: TDateTime): Integer;
 251 
 252 //传回日期值已存活的周数
 253 //例如 AgeAtDateInWeeks('1963/06/24',Now)=1975
 254 function AgeAtDateInWeeks (const DOB, DT: TDateTime): Integer;
 255 
 256 //传回日期值已存活的周数,不同的是此函数不用第二个参数是用上一个函数完成的
 257 //例如 AgeNowInWeeks('1963/06/24')=1975
 258 function AgeNowInWeeks (const DOB: TDateTime): Integer;
 259 
 260 //可传回几岁几月几周的详细年龄
 261 function AgeNowDescr (const DOB: TDateTime): String;
 262 
 263 function CheckDate(const sCheckedDateString: string): boolean;
 264 //检查是否是中华民国的日期格式
 265 //例如:CheckDate(DatetoStr(Now))=89/08/29,传回值是Boolean
 266 
 267 {----------------- 周数处理用函数 --------------------}
 268 
 269 //将日期值转换成周数
 270 function DateToWeekNo (const DT: TDateTime): Integer;
 271 
 272 //比较两个日期值是否相同
 273 function DatesInSameWeekNo (const DT1, DT2: TDateTime): Boolean;
 274 
 275 //将两个日期相减后转成周数
 276 function WeekNosApart (const DT1, DT2: TDateTime): Integer;
 277 
 278 //传回目前日期的周数
 279 function ThisWeekNo: Integer;
 280 
 281 //传回在X的年度的第n周的时间
 282 //例如:GetWeekNoToDate(28,2001)='2001/07/08',取得值是从星期天开始
 283 function GetWeekNoToDate_Sun (const WeekNo, Year: Word): TDateTime;
 284 
 285 //传回在X的年度的第n周的时间
 286 //例如:GetWeekNoToDate(28,2001)='2001/07/08',取得值是从星期一开始
 287 function GetWeekNoToDate_Mon (const WeekNo, Year: Word): TDateTime;
 288 
 289 //传回在X的年度的第n周的时间
 290 //例如:DWYToDate(3,28,2001)='2001/07/10',取得值是强制从星期天开始的
 291 function DWYToDate (const DOW, WeekNo, Year: Word): TDateTime;
 292 
 293 //将周数转换成月日格式
 294 //例如:WeekNoToDate(35)传回08/26
 295 function WeekNoToDate(Const Weekno : Word):TDateTime;
 296 
 297 {--- 检查确定日期函数 ---}
 298 //: 如果传回值是真表示目前是一月
 299 function IsJanuary (const DT: TDateTime): Boolean;
 300 
 301 //: 如果传回值是真表示目前是二月
 302 function IsFebruary (const DT: TDateTime): Boolean;
 303 
 304 //: 如果传回值是真表示目前是三月
 305 function IsMarch (const DT: TDateTime): Boolean;
 306 
 307 //: 如果传回值是真表示目前是四月
 308 function IsApril (const DT: TDateTime): Boolean;
 309 
 310 //: 如果传回值是真表示目前是五月
 311 function IsMay (const DT: TDateTime): Boolean;
 312 
 313 //: 如果传回值是真表示目前是六月
 314 function IsJune (const DT: TDateTime): Boolean;
 315 
 316 //: 如果传回值是真表示目前是七月
 317 function IsJuly (const DT: TDateTime): Boolean;
 318 
 319 //: 如果传回值是真表示目前是八月
 320 function IsAugust (const DT: TDateTime): Boolean;
 321 
 322 //: 如果传回值是真表示目前是九月
 323 function IsSeptember (const DT: TDateTime): Boolean;
 324 
 325 //: 如果传回值是真表示目前是十月
 326 function IsOctober (const DT: TDateTime): Boolean;
 327 
 328 //: 如果传回值是真表示目前是十一月
 329 function IsNovember (const DT: TDateTime): Boolean;
 330 
 331 //: 如果传回值是真表示目前是十二月
 332 function IsDecember (const DT: TDateTime): Boolean;
 333 
 334 //: 如果传回值是真表示目前是上午
 335 function IsAM (const DT: TDateTime): Boolean;
 336 
 337 //: 如果传回值是真表示目前是下午
 338 function IsPM (const DT: TDateTime): Boolean;
 339 
 340 //: 如果传回值是真表示目前是中午
 341 function IsNoon (const DT: TDateTime): Boolean;
 342 
 343 //:如果传回值是真表示目前是夜晚
 344 function IsMidnight (const DT: TDateTime): Boolean;
 345 
 346 //: 如果传回值是真表示目前是星期天
 347 function IsSunday (const DT: TDateTime): Boolean;
 348 
 349 //: 如果日期值是星期一即为真
 350 function IsMonday (const DT: TDateTime): Boolean;
 351 
 352 //: 如果日期值是星期二即为真
 353 function IsTuesday (const DT: TDateTime): Boolean;
 354 
 355 //: 如果日期值是星期三即为真
 356 function IsWednesday (const DT: TDateTime): Boolean;
 357 
 358 //: 如果日期值是星期四即为真
 359 function IsThursday (const DT: TDateTime): Boolean;
 360 
 361 //: 如果日期值是星期五即为真
 362 function IsFriday (const DT: TDateTime): Boolean;
 363 
 364 //: 如果日期值是星期六即为真
 365 function IsSaturday (const DT: TDateTime): Boolean;
 366 
 367 //:如果日期值是星期六或日即为真
 368 function IsWeekend (const DT: TDateTime): Boolean;
 369 
 370 //: 如果日期值是星期一至五即为真
 371 function IsWorkDays (const DT: TDateTime): Boolean;
 372 
 373 function CheckLastDayOfMonth(DT : TDateTime) : Boolean;
 374 //检查是否是本月的最后一天
 375 
 376 implementation
 377 
 378 uses
 379 
 380  
                       
                    
                    

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
基于matlab的升压斩波电路仿真发布时间:2022-07-18
下一篇:
Matlab批量修改文件夹名字发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap