📄 datecn.pas
字号:
Function GetLunarHolDay(InDate: TDateTime; Days: Integer): String;
Var
Year, Month, Day, Hour: Word;
Begin
DecodeDate(Date, Year, Month, Day);
Result := GetLunarHolDay(EncodeDate(Year, Month, Days));
End;
Function GetLunarHolDay(InDate: TDateTime): String;
Var
i, iYear, iMonth, iDay: Word;
Begin
// InDate := StrToDate(FormatDateTime('yyyy/mm/dd', InDate));
Result := '';
DecodeDate(InDate, iYear, iMonth, iDay);
i := l_GetLunarHolDay(iYear, iMonth, iDay);
Case i Of
1: Result := '小寒';
2: Result := '大寒';
3: Result := '立春';
4: Result := '雨水';
5: Result := '惊蛰';
6: Result := '春分';
7: Result := '清明';
8: Result := '谷雨';
9: Result := '立夏';
10: Result := '小满';
11: Result := '芒种';
12: Result := '夏至';
13: Result := '小暑';
14: Result := '大暑';
15: Result := '立秋';
16: Result := '处暑';
17: Result := '白露';
18: Result := '秋分';
19: Result := '寒露';
20: Result := '霜降';
21: Result := '立冬';
22: Result := '小雪';
23: Result := '大雪';
24: Result := '冬至';
End;
End;
Function l_GetLunarHolDay(iYear, iMonth, iDay: Word): Word;
Var
Flag: Byte;
Day: Word;
Begin
// var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000 ) + Date.UTC(1900,0,6,2,5) )
Flag := gLunarHolDay[(iYear - START_YEAR) * 12 + iMonth - 1];
If iDay < 15 Then
Day := 15 - ((Flag Shr 4) And $0F)
Else
Day := (Flag And $0F) + 15;
If iDay = Day Then
If iDay > 15 Then
Result := (iMonth - 1) * 2 + 2
Else
Result := (iMonth - 1) * 2 + 1
Else
Result := 0;
End;
Function Holiday(Date: TDateTime; Day: integer): String;
Var
dDate: TDate;
Begin
//五月的第二个星期日庆祝母亲节
//將每年6月的第3個星期天定為父親節 ?
{
新年元旦[01/01] 腊八节[农历十二月初八]
世界湿地日[02/02] 国际气象节[02/10] 情人节[02/14]
除夕[农历十二月三十] 春节[农历正月初一] 元宵节[农历正月十五]
全国爱耳日[03/03] 妇女节[03/08] 植树节[03/12]
国际警察日[03/14] 国际消费日[03/15] 世界森林日[03/21]
世界水日[03/22] 世界气象日[03/23] 世界防治结核病日[03/24]
愚人节[04/01] 清明[04/05] 世界卫生日[04/07]
世界地球日[04/22]
国际劳动节[05/01] 中国青年节[05/04] 全国碘缺乏病日[05/05]
世界红十字日[05/08] 国际护士节[05/12] 国际家庭日[05/15]
世界电信日[05/17] 国际博物馆日[05/18] 全国助残日[05/19]
全国学生营养日[05/20] 国际生物多样性日[05/22] 国际牛奶日[05/23]
世界无烟日[05/31] 端午节[农历五月初五] 母亲节[第二个星期日]
国际儿童节[06/01] 世界环境日[06/05] 全国爱眼日[06/06]
端午节[06/15] 父亲节[第三个星期日] 防治荒漠化和干旱日[06/17]
国际奥林匹克日[06/23] 全国土地日[06/25] 国际反毒品日[06/26]
香港回归日[07/01] 七夕情人节[农历七月初七] 建党日[07/01]
中国人民抗日战争纪念日[07/07] 世界人口日[07/11]
八一建军节[08/01]
劳动节[09/02] 国际扫盲日[09/08] 教师节[09/10]
国际臭氧层保护日[09/16] 国际和平日[09/17] 国际爱牙日[09/20]
中秋节[农历八月十五] 国际聋人节[09/22] 世界旅游日[09/27]
重阳节[农历九月九日]
国庆节[10/01] 国际音乐节[10/01] 国际减轻自然灾害日[10/02]
世界动物日[10/04] 国际住房日[10/07] 全国高血压日[10/08]
世界视觉日[10/08] 世界邮政日[10/09] 世界精神卫生日[10/10]
国际盲人节[10/15] 世界粮食节[10/16] 世界消除贫困日[10/17]
世界传统医药日[10/22] 联合国日[10/24] 万圣节[10/31]
中国记者日[11/08] 消防宣传日[11/09] 世界糖尿病日[11/14]
国际大学生节[11/17] 感恩节[11/28]
冬至节[农历12月22日] 世界艾滋病日[12/01] 世界残疾人日[12/03]
世界足球日[12/09] 圣诞节[12/25]
}
result := '';
Case Month(Date) Of
1:
Begin
If day = 1 Then
result := '元旦';
If day = 7 Then
result := '黑人旦';
If day = 28 Then
result := '麻风日';
End;
2:
Begin
If day = 2 Then
result := '湿地日';
If day = 7 Then
result := '国际.';
If day = 10 Then
result := '气象节';
If day = 12 Then
result := '足球比.';
If day = 14 Then
result := '情人节';
End;
3:
Begin
If day = 1 Then
result := '海豹日';
If day = 3 Then
result := '爱耳日';
If day = 8 Then
result := '妇女节';
If day = 12 Then
result := '植树节';
If day = 14 Then
result := '警察日';
If day = 15 Then
result := '消费者.';
If day = 17 Then
result := '国医节';
If day = 20 Then
result := '龙抬头.';
If day = 21 Then
result := '森林日';
If day = 22 Then
result := '世界水.';
If day = 23 Then
result := '世界气.';
If day = 24 Then
result := '防治结.';
If day = 25 Then
result := '中小学.';
If day = 30 Then
result := '巴勒斯.';
End;
4:
Begin
If day = 1 Then
result := '愚人节';
If day = 7 Then
result := '卫生日';
If day = 22 Then
result := '地球日';
If day = 23 Then
result := '图书和.';
If day = 24 Then
result := '亚非新.';
End;
5:
Begin
If day = 1 Then
result := '劳动节';
If day = 4 Then
result := '青年节';
// 母亲节[第二个星期日]
dDate := EnCodeDate(Year(Date), Month(Date), Day);
If (DayOfWeek(dDate) = 1) Then
If (Trunc((Day - 1) / 7) = 1) Then
result := '母亲节';
If day = 5 Then
result := '碘缺乏.';
If day = 8 Then
result := '红十字.';
If day = 9 Then
result := '妈祖生.';
If day = 12 Then
result := '护士节';
If day = 15 Then
result := '家庭日';
If day = 17 Then
result := '电信日';
If day = 18 Then
result := '博物馆.';
If day = 19 Then
result := '助残日';
If day = 20 Then
result := '助残日';
If day = 22 Then
result := '国际生.';
If day = 23 Then
result := '牛奶日';
If day = 31 Then
result := '无烟日';
End;
6:
Begin
If day = 1 Then
result := '儿童节';
// 父亲节[第三个星期日]
dDate := EnCodeDate(Year(Date), Month(Date), Day);
If (DayOfWeek(dDate) = 1) Then
If (Trunc((Day - 1) / 7) = 2) Then
result := '父亲节';
If day = 5 Then
result := '环境日';
If day = 6 Then
result := '爱眼日';
If day = 17 Then
result := '防治荒.';
If day = 23 Then
result := '国际奥.';
If day = 25 Then
result := '土地日';
If day = 26 Then
result := '反毒品.';
End;
7:
Begin
If day = 1 Then
result := '香港回.';
If day = 2 Then
result := '国际体.';
If day = 7 Then
result := '七七事.';
If day = 11 Then
result := '人口日';
If day = 30 Then
result := '非洲妇.';
End;
8:
Begin
If day = 1 Then
result := '建军节';
If day = 8 Then
result := '男子节';
If day = 15 Then
result := '日本正.';
If day = 27 Then
result := '中元节';
End;
9:
Begin
If day = 3 Then
result := '抗日战.';
If day = 8 Then
result := '国际扫.';
If day = 9 Then
result := '毛泽东.';
If day = 10 Then
result := '教师节';
If day = 14 Then
result := '世界清.';
If day = 16 Then
result := '国际臭.';
If day = 17 Then
result := '国际和.';
If day = 18 Then
result := '国耻日.';
If day = 20 Then
result := '爱牙日';
If day = 22 Then
result := '聋人节';
If day = 27 Then
result := '旅游日';
If day = 28 Then
result := '孔子诞.';
If day = 30 Then
result := '海事日';
End;
10:
Begin
If day = 1 Then
result := '国庆节';
If day = 2 Then
result := '国际和.';
If day = 3 Then
result := '减灾日';
If day = 4 Then
result := '动物日';
If day = 6 Then
result := '老人节';
If day = 7 Then
result := '住房日';
If day = 8 Then
result := '全国高.';
If day = 9 Then
result := '邮政日';
If day = 10 Then
result := '世界精.';
If day = 13 Then
result := '保健日';
If day = 14 Then
result := '标准日';
If day = 15 Then
result := '盲人节';
If day = 16 Then
result := '粮食日';
If day = 17 Then
result := '消除贫.';
If day = 22 Then
result := '传统医.';
If day = 24 Then
result := '联合国.';
If day = 31 Then
result := '万圣节';
End;
11:
Begin
// 感恩节(11月的第四个星期四 )
dDate := EnCodeDate(Year(Date), Month(Date), Day);
If (DayOfWeek(dDate) = 5) Then
If (Trunc((Day - 1) / 7) = 3) Then
result := '感恩节';
If day = 7 Then
result := '十月社.';
If day = 8 Then
result := '记者日';
If day = 9 Then
result := '全国消.';
If day = 10 Then
result := '青年节';
If day = 11 Then
result := '国际科.';
If day = 12 Then
result := '孙中山.';
If day = 14 Then
result := '糖尿病日';
If day = 17 Then
result := '国际大.';
If day = 21 Then
result := '问候日';
If day = 3 Then
result := '国际声.';
End;
12:
Begin
If day = 1 Then
result := '艾滋病日';
If day = 3 Then
result := '残疾人日';
If day = 5 Then
result := '国际经.';
If day = 8 Then
result := '儿童电.';
If day = 9 Then
result := '足球日';
If day = 10 Then
result := '人权日';
If day = 12 Then
result := '西安事.';
If day = 13 Then
result := '南京大.';
If day = 20 Then
result := '澳门回.';
If day = 21 Then
result := '国际蓝.';
If day = 24 Then
result := '平安夜';
If day = 25 Then
result := '圣诞节';
If day = 26 Then
result := '毛泽东.';
If day = 29 Then
result := '国际生.';
End;
End;
End;
Function Holiday_allname(Date: TDateTime; Day: integer): String;
Var
dDate: TDate;
Begin
result := '';
Case Month(Date) Of
1:
Begin
If day = 1 Then
result := '元旦';
If day = 7 Then
result := '黑人旦';
If day = 28 Then
result := '世界麻风日';
End;
2:
Begin
If day = 2 Then
result := '世界湿地日';
If day = 7 Then
result := '国际声援南非日';
If day = 10 Then
result := '国际气象节(灶君节)';
If day = 12 Then
result := '国际足球比赛日';
If day = 14 Then
result := '西方情人节';
End;
3:
Begin
If day = 1 Then
result := '国际海豹日';
If day = 3 Then
result := '全国爱耳日';
If day = 8 Then
result := '妇女节';
If day = 12 Then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -