在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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 全部评论
专题导读
热门推荐
热门话题
阅读排行榜
|
请发表评论