⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datecn.pas

📁 含阴历的中国式日历
💻 PAS
📖 第 1 页 / 共 4 页
字号:
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 + -