游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

C通用节气类库农历类(很全面)

  自己整理的,专业分享学习高质量代码,每周期布置学习任务,激发学习C兴趣!
  用法:
  DateTimedtmc。SelectionStart;
  cnewEcanChineseCalendar(dt);
  StringBuilderdayInfonewStringBuilder();
  dayInfo。Append(阳历:c。DateStringr);阳历日期
  dayInfo。Append(农历:c。ChineseDateStringr);农历日期
  dayInfo。Append(星期:c。WeekDayStr);星期
  dayInfo。Append(时辰:c。ChineseHourr);时辰
  dayInfo。Append(属相:c。AnimalStringr);属相
  dayInfo。Append(节气:c。ChineseTwentyFourDayr);节气
  dayInfo。Append(前一个节气:c。ChineseTwentyFourPrevDayr);前一个节气
  dayInfo。Append(下一个节气:c。ChineseTwentyFourNextDayr);下一个节气
  dayInfo。Append(节日:c。DateHolidayr);节日
  dayInfo。Append(干支:c。GanZhiDateStringr);干支
  dayInfo。Append(星宿:c。ChineseConstellationr);星宿
  dayInfo。Append(星座:c。Constellationr);星座
  usingSystem;
  usingSystem。Collections。Generic;
  usingSystem。Text;
  namespaceAH。BI。MWeb。Service
  {
  regionChineseCalendarException
  中国日历异常处理
  publicclassnewCalendarException:System。Exception
  {
  publicnewCalendarException(stringmsg)
  :base(msg)
  {
  }
  }
  endregion
  publicclassEcanChineseCalendar
  {
  region内部结构
  privatestructSolarHolidayStruct阳历
  {
  publicintMonth;
  publicintDay;
  publicintRecess;假期长度
  publicstringHolidayName;
  publicSolarHolidayStruct(intmonth,intday,intrecess,stringname)
  {
  Monthmonth;
  Dayday;
  Recessrecess;
  HolidayNamename;
  }
  }
  privatestructLunarHolidayStruct农历
  {
  publicintMonth;
  publicintDay;
  publicintRecess;
  publicstringHolidayName;
  publicLunarHolidayStruct(intmonth,intday,intrecess,stringname)
  {
  Monthmonth;
  Dayday;
  Recessrecess;
  HolidayNamename;
  }
  }
  privatestructWeekHolidayStruct
  {
  publicintMonth;
  publicintWeekAtMonth;
  publicintWeekDay;
  publicstringHolidayName;
  publicWeekHolidayStruct(intmonth,intweekAtMonth,intweekDay,stringname)
  {
  Monthmonth;
  WeekAtMonthweekAtMonth;
  WeekDayweekDay;
  HolidayNamename;
  }
  }
  endregion
  region内部变量
  privateDateTimedate;
  privateDateTimedatetime;
  privateintcYear;
  privateintcMonth;
  privateintcDay;
  privateboolcIsLeapMonth;当月是否闰月
  privateboolcIsLeapYear;当年是否有闰月
  endregion
  region基础数据
  region基本常量
  privateconstintMinYear1900;
  privateconstintMaxYear2050;
  privatestaticDateTimeMinDaynewDateTime(1900,1,30);
  privatestaticDateTimeMaxDaynewDateTime(2049,12,31);
  privateconstintGanZhiStartYear1864;干支计算起始年
  privatestaticDateTimeGanZhiStartDaynewDateTime(1899,12,22);起始日
  privateconststringHZNum零一二三四五六七八九;
  privateconstintAnimalStartYear1900;1900年为鼠年
  privatestaticDateTimeChineseConstellationReferDaynewDateTime(2007,9,13);28星宿参考值,本期为角
  endregion
  region阴历数据
  来源于网上的农历数据
  数据结构如下,共使用17位数据
  第17位:表示闰月天数,0表示29天1表示30天
  第16位第5位(共12位)表示12个月,其中第16位表示第一月,如果该月为30天则为1,29天为0
  第4位第1位(共4位)表示闰月是哪个月,如果当年没有闰月,则置0
  privatestaticint〔〕LunarDateArraynewint〔〕{
  0x04BD8,0x04AE0,0x0A570,0x054D5,0x0D260,0x0D950,0x16554,0x056A0,0x09AD0,0x055D2,
  0x04AE0,0x0A5B6,0x0A4D0,0x0D250,0x1D255,0x0B540,0x0D6A0,0x0ADA2,0x095B0,0x14977,
  0x04970,0x0A4B0,0x0B4B5,0x06A50,0x06D40,0x1AB54,0x02B60,0x09570,0x052F2,0x04970,
  0x06566,0x0D4A0,0x0EA50,0x06E95,0x05AD0,0x02B60,0x186E3,0x092E0,0x1C8D7,0x0C950,
  0x0D4A0,0x1D8A6,0x0B550,0x056A0,0x1A5B4,0x025D0,0x092D0,0x0D2B2,0x0A950,0x0B557,
  0x06CA0,0x0B550,0x15355,0x04DA0,0x0A5B0,0x14573,0x052B0,0x0A9A8,0x0E950,0x06AA0,
  0x0AEA6,0x0AB50,0x04B60,0x0AAE4,0x0A570,0x05260,0x0F263,0x0D950,0x05B57,0x056A0,
  0x096D0,0x04DD5,0x04AD0,0x0A4D0,0x0D4D4,0x0D250,0x0D558,0x0B540,0x0B6A0,0x195A6,
  0x095B0,0x049B0,0x0A974,0x0A4B0,0x0B27A,0x06A50,0x06D40,0x0AF46,0x0AB60,0x09570,
  0x04AF5,0x04970,0x064B0,0x074A3,0x0EA50,0x06B58,0x055C0,0x0AB60,0x096D5,0x092E0,
  0x0C960,0x0D954,0x0D4A0,0x0DA50,0x07552,0x056A0,0x0ABB7,0x025D0,0x092D0,0x0CAB5,
  0x0A950,0x0B4A0,0x0BAA4,0x0AD50,0x055D9,0x04BA0,0x0A5B0,0x15176,0x052B0,0x0A930,
  0x07954,0x06AA0,0x0AD50,0x05B52,0x04B60,0x0A6E6,0x0A4E0,0x0D260,0x0EA65,0x0D530,
  0x05AA0,0x076A3,0x096D0,0x04BD7,0x04AD0,0x0A4D0,0x1D0B6,0x0D250,0x0D520,0x0DD45,
  0x0B5A0,0x056D0,0x055B2,0x049B0,0x0A577,0x0A4B0,0x0AA50,0x1B255,0x06D20,0x0ADA0,
  0x14B63
  };
  endregion
  region星座名称
  privatestaticstring〔〕constellationName
  {
  白羊座,金牛座,双子座,
  巨蟹座,狮子座,处女座,
  天秤座,天蝎座,射手座,
  摩羯座,水瓶座,双鱼座
  };
  endregion
  region二十四节气
  privatestaticstring〔〕lunarHolidayName
  {
  小寒,大寒,立春,雨水,
  惊蛰,春分,清明,谷雨,
  立夏,小满,芒种,夏至,
  小暑,大暑,立秋,处暑,
  白露,秋分,寒露,霜降,
  立冬,小雪,大雪,冬至
  };
  endregion
  region二十八星宿
  privatestaticstring〔〕chineseConstellationName
  {
  四五六日一二三
  角木蛟,亢金龙,女土蝠,房日兔,心月狐,尾火虎,箕水豹,
  斗木獬,牛金牛,氐土貉,虚日鼠,危月燕,室火猪,壁水獝,
  奎木狼,娄金狗,胃土彘,昴日鸡,毕月乌,觜火猴,参水猿,
  井木犴,鬼金羊,柳土獐,星日马,张月鹿,翼火蛇,猎水蚓
  };
  endregion
  region节气数据
  privatestaticstring〔〕SolarTermnewstring〔〕{小寒,大寒,立春,雨水,惊蛰,春分,清明,谷雨,立夏,小满,芒种,夏至,小暑,大暑,立秋,处暑,白露,秋分,寒露,霜降,立冬,小雪,大雪,冬至};
  privatestaticint〔〕sTermInfonewint〔〕{0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758};
  endregion
  region农历相关数据
  privatestaticstringganStr甲乙丙丁戊己庚辛壬癸;
  privatestaticstringzhiStr子丑寅卯辰巳午未申酉戌亥;
  privatestaticstringanimalStr鼠牛虎兔龙蛇马羊猴鸡狗猪;
  privatestaticstringnStr1日一二三四五六七八九;
  privatestaticstringnStr2初十廿卅;
  privatestaticstring〔〕monthString
  {
  出错,正月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,腊月
  };
  endregion
  region按公历计算的节日
  privatestaticSolarHolidayStruct〔〕sHolidayInfonewSolarHolidayStruct〔〕{
  newSolarHolidayStruct(1,1,1,元旦),
  newSolarHolidayStruct(2,2,0,世界湿地日),
  newSolarHolidayStruct(2,10,0,国际气象节),
  newSolarHolidayStruct(2,14,0,情人节),
  newSolarHolidayStruct(3,1,0,国际海豹日),
  newSolarHolidayStruct(3,5,0,学雷锋纪念日),
  newSolarHolidayStruct(3,8,0,妇女节),
  newSolarHolidayStruct(3,12,0,植树节孙中山逝世纪念日),
  newSolarHolidayStruct(3,14,0,国际警察日),
  newSolarHolidayStruct(3,15,0,消费者权益日),
  newSolarHolidayStruct(3,17,0,中国国医节国际航海日),
  newSolarHolidayStruct(3,21,0,世界森林日消除种族歧视国际日世界儿歌日),
  newSolarHolidayStruct(3,22,0,世界水日),
  newSolarHolidayStruct(3,24,0,世界防治结核病日),
  newSolarHolidayStruct(4,1,0,愚人节),
  newSolarHolidayStruct(4,7,0,世界卫生日),
  newSolarHolidayStruct(4,22,0,世界地球日),
  newSolarHolidayStruct(5,1,1,劳动节),
  newSolarHolidayStruct(5,2,1,劳动节假日),
  newSolarHolidayStruct(5,3,1,劳动节假日),
  newSolarHolidayStruct(5,4,0,青年节),
  newSolarHolidayStruct(5,8,0,世界红十字日),
  newSolarHolidayStruct(5,12,0,国际护士节),
  newSolarHolidayStruct(5,31,0,世界无烟日),
  newSolarHolidayStruct(6,1,0,国际儿童节),
  newSolarHolidayStruct(6,5,0,世界环境保护日),
  newSolarHolidayStruct(6,26,0,国际禁毒日),
  newSolarHolidayStruct(7,1,0,建党节香港回归纪念世界建筑日),
  newSolarHolidayStruct(7,11,0,世界人口日),
  newSolarHolidayStruct(8,1,0,建军节),
  newSolarHolidayStruct(8,8,0,中国男子节父亲节),
  newSolarHolidayStruct(8,15,0,抗日战争胜利纪念),
  newSolarHolidayStruct(9,9,0,毛主席逝世纪念),
  newSolarHolidayStruct(9,10,0,教师节),
  newSolarHolidayStruct(9,18,0,九一八事变纪念日),
  newSolarHolidayStruct(9,20,0,国际爱牙日),
  newSolarHolidayStruct(9,27,0,世界旅游日),
  newSolarHolidayStruct(9,28,0,孔子诞辰),
  newSolarHolidayStruct(10,1,1,国庆节国际音乐日),
  newSolarHolidayStruct(10,2,1,国庆节假日),
  newSolarHolidayStruct(10,3,1,国庆节假日),
  newSolarHolidayStruct(10,6,0,老人节),
  newSolarHolidayStruct(10,24,0,联合国日),
  newSolarHolidayStruct(11,10,0,世界青年节),
  newSolarHolidayStruct(11,12,0,孙中山诞辰纪念),
  newSolarHolidayStruct(12,1,0,世界艾滋病日),
  newSolarHolidayStruct(12,3,0,世界残疾人日),
  newSolarHolidayStruct(12,20,0,澳门回归纪念),
  newSolarHolidayStruct(12,24,0,平安夜),
  newSolarHolidayStruct(12,25,0,圣诞节),
  newSolarHolidayStruct(12,26,0,毛主席诞辰纪念)
  };
  endregion
  region按农历计算的节日
  privatestaticLunarHolidayStruct〔〕lHolidayInfonewLunarHolidayStruct〔〕{
  newLunarHolidayStruct(1,1,1,春节),
  newLunarHolidayStruct(1,15,0,元宵节),
  newLunarHolidayStruct(5,5,0,端午节),
  newLunarHolidayStruct(7,7,0,七夕情人节),
  newLunarHolidayStruct(7,15,0,中元节盂兰盆节),
  newLunarHolidayStruct(8,15,0,中秋节),
  newLunarHolidayStruct(9,9,0,重阳节),
  newLunarHolidayStruct(12,8,0,腊八节),
  newLunarHolidayStruct(12,23,0,北方小年(扫房)),
  newLunarHolidayStruct(12,24,0,南方小年(掸尘)),
  newLunarHolidayStruct(12,30,0,除夕)注意除夕需要其它方法进行计算
  };
  endregion
  region按某月第几个星期几
  privatestaticWeekHolidayStruct〔〕wHolidayInfonewWeekHolidayStruct〔〕{
  newWeekHolidayStruct(5,2,1,母亲节),
  newWeekHolidayStruct(5,3,1,全国助残日),
  newWeekHolidayStruct(6,3,1,父亲节),
  newWeekHolidayStruct(9,3,3,国际和平日),
  newWeekHolidayStruct(9,4,1,国际聋人节),
  newWeekHolidayStruct(10,1,2,国际住房日),
  newWeekHolidayStruct(10,1,4,国际减轻自然灾害日),
  newWeekHolidayStruct(11,4,5,感恩节)
  };
  endregion
  endregion
  region构造函数
  regionChinaCalendar公历日期初始化
  用一个标准的公历日期来初使化
  param
  publicEcanChineseCalendar(DateTimedt)
  {
  inti;
  intleap;
  inttemp;
  intoffset;
  CheckDateLimit(dt);
  datedt。Date;
  datetimedt;
  农历日期计算部分
  leap0;
  temp0;
  TimeSpantsdateEcanChineseCalendar。MinDay;计算两天的基本差距
  offsetts。Days;
  for(iMinYear;iMaxYear;i)
  {
  tempGetChineseYearDays(i);求当年农历年天数
  if(offsettemp1)
  break;
  else
  {
  offsetoffsettemp;
  }
  }
  cYeari;
  leapGetChineseLeapMonth(cYear);计算该年闰哪个月
  设定当年是否有闰月
  if(leap0)
  {
  cIsLeapYeartrue;
  }
  else
  {
  cIsLeapYearfalse;
  }
  cIsLeapMonthfalse;
  for(i1;i12;i)
  {
  闰月
  if((leap0)(ileap1)(cIsLeapMonthfalse))
  {
  cIsLeapMonthtrue;
  ii1;
  tempGetChineseLeapMonthDays(cYear);计算闰月天数
  }
  else
  {
  cIsLeapMonthfalse;
  tempGetChineseMonthDays(cYear,i);计算非闰月天数
  }
  offsetoffsettemp;
  if(offset0)break;
  }
  offsetoffsettemp;
  cMonthi;
  cDayoffset;
  }
  endregion
  regionChinaCalendar农历日期初始化
  用农历的日期来初使化
  农历年param
  农历月param
  农历日param
  闰月标志param
  publicEcanChineseCalendar(intcy,intcm,intcd,boolleapMonthFlag)
  {
  inti,leap,Temp,offset;
  CheckChineseDateLimit(cy,cm,cd,leapMonthFlag);
  cYearcy;
  cMonthcm;
  cDaycd;
  offset0;
  for(iMinYear;icy;i)
  {
  TempGetChineseYearDays(i);求当年农历年天数
  offsetoffsetTemp;
  }
  leapGetChineseLeapMonth(cy);计算该年应该闰哪个月
  if(leap!0)
  {
  this。cIsLeapYeartrue;
  }
  else
  {
  this。cIsLeapYearfalse;
  }
  if(cm!leap)
  {
  cIsLeapMonthfalse;当前日期并非闰月
  }
  else
  {
  cIsLeapMonthleapMonthFlag;使用用户输入的是否闰月月份
  }
  if((cIsLeapYearfalse)当年没有闰月
  (cmleap))计算月份小于闰月
  {
  region。。。
  for(i1;icm;i)
  {
  TempGetChineseMonthDays(cy,i);计算非闰月天数
  offsetoffsetTemp;
  }
  检查日期是否大于最大天
  if(cdGetChineseMonthDays(cy,cm))
  {
  thrownewnewCalendarException(不合法的农历日期);
  }
  offsetoffsetcd;加上当月的天数
  endregion
  }
  else是闰年,且计算月份大于或等于闰月
  {
  region。。。
  for(i1;icm;i)
  {
  TempGetChineseMonthDays(cy,i);计算非闰月天数
  offsetoffsetTemp;
  }
  if(cmleap)计算月大于闰月
  {
  TempGetChineseLeapMonthDays(cy);计算闰月天数
  offsetoffsetTemp;加上闰月天数
  if(cdGetChineseMonthDays(cy,cm))
  {
  thrownewnewCalendarException(不合法的农历日期);
  }
  offsetoffsetcd;
  }
  else计算月等于闰月
  {
  如果需要计算的是闰月,则应首先加上与闰月对应的普通月的天数
  if(this。cIsLeapMonthtrue)计算月为闰月
  {
  TempGetChineseMonthDays(cy,cm);计算非闰月天数
  offsetoffsetTemp;
  }
  if(cdGetChineseLeapMonthDays(cy))
  {
  thrownewnewCalendarException(不合法的农历日期);
  }
  offsetoffsetcd;
  }
  endregion
  }
  dateMinDay。AddDays(offset);
  }
  endregion
  endregion
  region私有函数
  regionGetChineseMonthDays
  传回农历y年m月的总天数
  privateintGetChineseMonthDays(intyear,intmonth)
  {
  if(BitTest32((LunarDateArray〔yearMinYear〕0x0000FFFF),(16month)))
  {
  return30;
  }
  else
  {
  return29;
  }
  }
  endregion
  regionGetChineseLeapMonth
  传回农历y年闰哪个月112,没闰传回0
  privateintGetChineseLeapMonth(intyear)
  {
  returnLunarDateArray〔yearMinYear〕0xF;
  }
  endregion
  regionGetChineseLeapMonthDays
  传回农历y年闰月的天数
  privateintGetChineseLeapMonthDays(intyear)
  {
  if(GetChineseLeapMonth(year)!0)
  {
  if((LunarDateArray〔yearMinYear〕0x10000)!0)
  {
  return30;
  }
  else
  {
  return29;
  }
  }
  else
  {
  return0;
  }
  }
  endregion
  regionGetChineseYearDays
  取农历年一年的天数
  param
  privateintGetChineseYearDays(intyear)
  {
  inti,f,sumDay,info;
  sumDay348;29天X12个月
  i0x8000;
  infoLunarDateArray〔yearMinYear〕0x0FFFF;
  计算12个月中有多少天为30天
  for(intm0;m12;m)
  {
  finfoi;
  if(f!0)
  {
  sumDay;
  }
  ii1;
  }
  returnsumDayGetChineseLeapMonthDays(year);
  }
  endregion
  regionGetChineseHour
  获得当前时间的时辰
  param
  privatestringGetChineseHour(DateTimedt)
  {
  inthour,minute,offset,i;
  intindexGan;
  stringganHour,zhiHour;
  stringtmpGan;
  计算时辰的地支
  hourdt。Hour;获得当前时间小时
  minutedt。Minute;获得当前时间分钟
  if(minute!0)hour1;
  offsethour2;
  if(offset12)offset0;
  zhiHourzhiStr〔offset〕。ToString();
  计算天干
  TimeSpantsthis。dateGanZhiStartDay;
  its。Days60;
  indexGan((i101)21)101;ganStr〔i10〕为日的天干,(n21)10得出地支对应,n从1开始
  tmpGanganStr。Substring(indexGan)ganStr。Substring(0,indexGan2);凑齐12位
  ganHourganStr〔((i101)21)101〕。ToString();
  returntmpGan〔offset〕。ToString()zhiStr〔offset〕。ToString();
  }
  endregion
  regionCheckDateLimit
  检查公历日期是否符合要求
  param
  privatevoidCheckDateLimit(DateTimedt)
  {
  if((dtMinDay)(dtMaxDay))
  {
  thrownewnewCalendarException(超出可转换的日期);
  }
  }
  endregion
  regionCheckChineseDateLimit
  检查农历日期是否合理
  param
  param
  param
  param
  privatevoidCheckChineseDateLimit(intyear,intmonth,intday,boolleapMonth)
  {
  if((yearMinYear)(yearMaxYear))
  {
  thrownewnewCalendarException(非法农历日期);
  }
  if((month1)(month12))
  {
  thrownewnewCalendarException(非法农历日期);
  }
  if((day1)(day30))中国的月最多30天
  {
  thrownewnewCalendarException(非法农历日期);
  }
  intleapGetChineseLeapMonth(year);计算该年应该闰哪个月
  if((leapMonthtrue)(month!leap))
  {
  thrownewnewCalendarException(非法农历日期);
  }
  }
  endregion
  regionConvertNumToChineseNum
  将09转成汉字形式
  param
  privatestringConvertNumToChineseNum(charn)
  {
  if((n0)(n9))return;
  switch(n)
  {
  case0:
  returnHZNum〔0〕。ToString();
  case1:
  returnHZNum〔1〕。ToString();
  case2:
  returnHZNum〔2〕。ToString();
  case3:
  returnHZNum〔3〕。ToString();
  case4:
  returnHZNum〔4〕。ToString();
  case5:
  returnHZNum〔5〕。ToString();
  case6:
  returnHZNum〔6〕。ToString();
  case7:
  returnHZNum〔7〕。ToString();
  case8:
  returnHZNum〔8〕。ToString();
  case9:
  returnHZNum〔9〕。ToString();
  default:
  return;
  }
  }
  endregion
  regionBitTest32
  测试某位是否为真
  param
  param
  privateboolBitTest32(intnum,intbitpostion)
  {
  if((bitpostion31)(bitpostion0))
  thrownewException(ErrorParam:bitpostion〔031〕:bitpostion。ToString());
  intbit1bitpostion;
  if((numbit)0)
  {
  returnfalse;
  }
  else
  {
  returntrue;
  }
  }
  endregion
  regionConvertDayOfWeek
  将星期几转成数字表示
  param
  privateintConvertDayOfWeek(DayOfWeekdayOfWeek)
  {
  switch(dayOfWeek)
  {
  caseDayOfWeek。Sunday:
  return1;
  caseDayOfWeek。Monday:
  return2;
  caseDayOfWeek。Tuesday:
  return3;
  caseDayOfWeek。Wednesday:
  return4;
  caseDayOfWeek。Thursday:
  return5;
  caseDayOfWeek。Friday:
  return6;
  caseDayOfWeek。Saturday:
  return7;
  default:
  return0;
  }
  }
  endregion
  regionCompareWeekDayHoliday
  比较当天是不是指定的第周几
  param
  param
  param
  param
  privateboolCompareWeekDayHoliday(DateTimedate,intmonth,intweek,intday)
  {
  boolretfalse;
  if(date。Monthmonth)月份相同
  {
  if(ConvertDayOfWeek(date。DayOfWeek)day)星期几相同
  {
  DateTimefirstDaynewDateTime(date。Year,date。Month,1);生成当月第一天
  intiConvertDayOfWeek(firstDay。DayOfWeek);
  intfirWeekDays7ConvertDayOfWeek(firstDay。DayOfWeek)1;计算第一周剩余天数
  if(iday)
  {
  if((week1)7dayfirWeekDaysdate。Day)
  {
  rettrue;
  }
  }
  else
  {
  if(dayfirWeekDays(week2)7date。Day)
  {
  rettrue;
  }
  }
  }
  }
  returnret;
  }
  endregion
  endregion
  region属性
  region节日
  regionnewCalendarHoliday
  计算中国农历节日
  publicstringnewCalendarHoliday
  {
  get
  {
  stringtempStr;
  if(this。cIsLeapMonthfalse)闰月不计算节日
  {
  foreach(LunarHolidayStructlhinlHolidayInfo)
  {
  if((lh。Monththis。cMonth)(lh。Daythis。cDay))
  {
  tempStrlh。HolidayName;
  break;
  }
  }
  对除夕进行特别处理
  if(this。cMonth12)
  {
  intiGetChineseMonthDays(this。cYear,12);计算当年农历12月的总天数
  if(this。cDayi)如果为最后一天
  {
  tempStr除夕;
  }
  }
  }
  returntempStr;
  }
  }
  endregion
  regionWeekDayHoliday
  按某月第几周第几日计算的节日
  publicstringWeekDayHoliday
  {
  get
  {
  stringtempStr;
  foreach(WeekHolidayStructwhinwHolidayInfo)
  {
  if(CompareWeekDayHoliday(date,wh。Month,wh。WeekAtMonth,wh。WeekDay))
  {
  tempStrwh。HolidayName;
  break;
  }
  }
  returntempStr;
  }
  }
  endregion
  regionDateHoliday
  按公历日计算的节日
  publicstringDateHoliday
  {
  get
  {
  stringtempStr;
  foreach(SolarHolidayStructshinsHolidayInfo)
  {
  if((sh。Monthdate。Month)(sh。Daydate。Day))
  {
  tempStrsh。HolidayName;
  break;
  }
  }
  returntempStr;
  }
  }
  endregion
  endregion
  region公历日期
  regionDate
  取对应的公历日期
  publicDateTimeDate
  {
  get{returndate;}
  set{datevalue;}
  }
  endregion
  regionWeekDay
  取星期几
  publicDayOfWeekWeekDay
  {
  get{returndate。DayOfWeek;}
  }
  endregion
  regionWeekDayStr
  周几的字符
  publicstringWeekDayStr
  {
  get
  {
  switch(date。DayOfWeek)
  {
  caseDayOfWeek。Sunday:
  return星期日;
  caseDayOfWeek。Monday:
  return星期一;
  caseDayOfWeek。Tuesday:
  return星期二;
  caseDayOfWeek。Wednesday:
  return星期三;
  caseDayOfWeek。Thursday:
  return星期四;
  caseDayOfWeek。Friday:
  return星期五;
  default:
  return星期六;
  }
  }
  }
  endregion
  regionDateString
  公历日期中文表示法如一九九七年七月一日
  publicstringDateString
  {
  get
  {
  return公元this。date。ToLongDateString();
  }
  }
  endregion
  regionIsLeapYear
  当前是否公历闰年
  publicboolIsLeapYear
  {
  get
  {
  returnDateTime。IsLeapYear(this。date。Year);
  }
  }
  endregion
  regionChineseConstellation
  28星宿计算
  publicstringChineseConstellation
  {
  get
  {
  intoffset0;
  intmodStarDay0;
  TimeSpantsthis。dateChineseConstellationReferDay;
  offsetts。Days;
  modStarDayoffset28;
  return(modStarDay0?chineseConstellationName〔modStarDay〕:chineseConstellationName〔27modStarDay〕);
  }
  }
  endregion
  regionChineseHour
  时辰
  publicstringChineseHour
  {
  get
  {
  returnGetChineseHour(datetime);
  }
  }
  endregion
  endregion
  region农历日期
  regionIsChineseLeapMonth
  是否闰月
  publicboolIsChineseLeapMonth
  {
  get{returnthis。cIsLeapMonth;}
  }
  endregion
  regionIsChineseLeapYear
  当年是否有闰月
  publicboolIsChineseLeapYear
  {
  get
  {
  returnthis。cIsLeapYear;
  }
  }
  endregion
  regionChineseDay
  农历日
  publicintChineseDay
  {
  get{returnthis。cDay;}
  }
  endregion
  regionChineseDayString
  农历日中文表示
  publicstringChineseDayString
  {
  get
  {
  switch(this。cDay)
  {
  case0:
  return;
  case10:
  return初十;
  case20:
  return二十;
  case30:
  return三十;
  default:
  returnnStr2〔(int)(cDay10)〕。ToString()nStr1〔cDay10〕。ToString();
  }
  }
  }
  endregion
  regionChineseMonth
  农历的月份
  publicintChineseMonth
  {
  get{returnthis。cMonth;}
  }
  endregion
  regionChineseMonthString
  农历月份字符串
  publicstringChineseMonthString
  {
  get
  {
  returnmonthString〔this。cMonth〕;
  }
  }
  endregion
  regionChineseYear
  取农历年份
  publicintChineseYear
  {
  get{returnthis。cYear;}
  }
  endregion
  regionChineseYearString
  取农历年字符串如,一九九七年
  publicstringChineseYearString
  {
  get
  {
  stringtempStr;
  stringnumthis。cYear。ToString();
  for(inti0;i4;i)
  {
  tempStrConvertNumToChineseNum(num〔i〕);
  }
  returntempStr年;
  }
  }
  endregion
  regionChineseDateString
  取农历日期表示法:农历一九九七年正月初五
  publicstringChineseDateString
  {
  get
  {
  if(this。cIsLeapMonthtrue)
  {
  return农历ChineseYearString闰ChineseMonthStringChineseDayString;
  }
  else
  {
  return农历ChineseYearStringChineseMonthStringChineseDayString;
  }
  }
  }
  endregion
  regionChineseTwentyFourDay
  定气法计算二十四节气,二十四节气是按地球公转来计算的,并非是阴历计算的
  节气的定法有两种。古代历法采用的称为恒气,即按时间把一年等分为24份,
  每一节气平均得15天有余,所以又称平气。现代农历采用的称为定气,即
  按地球在轨道上的位置为标准,一周360,两节气之间相隔15。由于冬至时地
  球位于近日点附近,运动速度较快,因而太阳在黄道上移动15的时间不到15天。
  夏至前后的情况正好相反,太阳在黄道上移动较慢,一个节气达16天之多。采用
  定气时可以保证春、秋两分必然在昼夜平分的那两天。
  publicstringChineseTwentyFourDay
  {
  get
  {
  DateTimebaseDateAndTimenewDateTime(1900,1,6,2,5,0);1619002:05:00AM
  DateTimenewDate;
  doublenum;
  inty;
  stringtempStr;
  ythis。date。Year;
  for(inti1;i24;i)
  {
  num525948。76(y1900)sTermInfo〔i1〕;
  newDatebaseDateAndTime。AddMinutes(num);按分钟计算
  if(newDate。DayOfYeardate。DayOfYear)
  {
  tempStrSolarTerm〔i1〕;
  break;
  }
  }
  returntempStr;
  }
  }
  当前日期前一个最近节气
  publicstringChineseTwentyFourPrevDay
  {
  get
  {
  DateTimebaseDateAndTimenewDateTime(1900,1,6,2,5,0);1619002:05:00AM
  DateTimenewDate;
  doublenum;
  inty;
  stringtempStr;
  ythis。date。Year;
  for(inti24;i1;i)
  {
  num525948。76(y1900)sTermInfo〔i1〕;
  newDatebaseDateAndTime。AddMinutes(num);按分钟计算
  if(newDate。DayOfYeardate。DayOfYear)
  {
  tempStrstring。Format({0}〔{1}〕,SolarTerm〔i1〕,newDate。ToString(yyyyMMdd));
  break;
  }
  }
  returntempStr;
  }
  }
  当前日期后一个最近节气
  publicstringChineseTwentyFourNextDay
  {
  get
  {
  DateTimebaseDateAndTimenewDateTime(1900,1,6,2,5,0);1619002:05:00AM
  DateTimenewDate;
  doublenum;
  inty;
  stringtempStr;
  ythis。date。Year;
  for(inti1;i24;i)
  {
  num525948。76(y1900)sTermInfo〔i1〕;
  newDatebaseDateAndTime。AddMinutes(num);按分钟计算
  if(newDate。DayOfYeardate。DayOfYear)
  {
  tempStrstring。Format({0}〔{1}〕,SolarTerm〔i1〕,newDate。ToString(yyyyMMdd));
  break;
  }
  }
  returntempStr;
  }
  }
  endregion
  endregion
  region星座
  regionConstellation
  计算指定日期的星座序号
  publicstringConstellation
  {
  get
  {
  intindex0;
  inty,m,d;
  ydate。Year;
  mdate。Month;
  ddate。Day;
  ym100d;
  if(((y321)(y419))){index0;}
  elseif((y420)(y520)){index1;}
  elseif((y521)(y620)){index2;}
  elseif((y621)(y722)){index3;}
  elseif((y723)(y822)){index4;}
  elseif((y823)(y922)){index5;}
  elseif((y923)(y1022)){index6;}
  elseif((y1023)(y1121)){index7;}
  elseif((y1122)(y1221)){index8;}
  elseif((y1222)(y119)){index9;}
  elseif((y120)(y218)){index10;}
  elseif((y219)(y320)){index11;}
  else{index0;}
  returnconstellationName〔index〕;
  }
  }
  endregion
  endregion
  region属相
  regionAnimal
  计算属相的索引,注意虽然属相是以农历年来区别的,但是目前在实际使用中是按公历来计算的
  鼠年为1,其它类推
  publicintAnimal
  {
  get
  {
  intoffsetdate。YearAnimalStartYear;
  return(offset12)1;
  }
  }
  endregion
  regionAnimalString
  取属相字符串
  publicstringAnimalString
  {
  get
  {
  intoffsetdate。YearAnimalStartYear;阳历计算
  intoffsetthis。cYearAnimalStartYear;农历计算
  returnanimalStr〔offset12〕。ToString();
  }
  }
  endregion
  endregion
  region天干地支
  regionGanZhiYearString
  取农历年的干支表示法如乙丑年
  publicstringGanZhiYearString
  {
  get
  {
  stringtempStr;
  inti(this。cYearGanZhiStartYear)60;计算干支
  tempStrganStr〔i10〕。ToString()zhiStr〔i12〕。ToString()年;
  returntempStr;
  }
  }
  endregion
  regionGanZhiMonthString
  取干支的月表示字符串,注意农历的闰月不记干支
  publicstringGanZhiMonthString
  {
  get
  {
  每个月的地支总是固定的,而且总是从寅月开始
  intzhiIndex;
  stringzhi;
  if(this。cMonth10)
  {
  zhiIndexthis。cMonth10;
  }
  else
  {
  zhiIndexthis。cMonth2;
  }
  zhizhiStr〔zhiIndex1〕。ToString();
  根据当年的干支年的干来计算月干的第一个
  intganIndex1;
  stringgan;
  inti(this。cYearGanZhiStartYear)60;计算干支
  switch(i10)
  {
  region。。。
  case0:甲
  ganIndex3;
  break;
  case1:乙
  ganIndex5;
  break;
  case2:丙
  ganIndex7;
  break;
  case3:丁
  ganIndex9;
  break;
  case4:戊
  ganIndex1;
  break;
  case5:己
  ganIndex3;
  break;
  case6:庚
  ganIndex5;
  break;
  case7:辛
  ganIndex7;
  break;
  case8:壬
  ganIndex9;
  break;
  case9:癸
  ganIndex1;
  break;
  endregion
  }
  ganganStr〔(ganIndexthis。cMonth2)10〕。ToString();
  returnganzhi月;
  }
  }
  endregion
  regionGanZhiDayString
  取干支日表示法
  publicstringGanZhiDayString
  {
  get
  {
  inti,offset;
  TimeSpantsthis。dateGanZhiStartDay;
  offsetts。Days;
  ioffset60;
  returnganStr〔i10〕。ToString()zhiStr〔i12〕。ToString()日;
  }
  }
  endregion
  regionGanZhiDateString
  取当前日期的干支表示法如甲子年乙丑月丙庚日
  publicstringGanZhiDateString
  {
  get
  {
  returnGanZhiYearStringGanZhiMonthStringGanZhiDayString;
  }
  }
  endregion
  endregion
  endregion
  region方法
  regionNextDay
  取下一天
  publicEcanChineseCalendarNextDay()
  {
  DateTimenextDaydate。AddDays(1);
  returnnewEcanChineseCalendar(nextDay);
  }
  endregion
  regionPervDay
  取前一天
  publicEcanChineseCalendarPervDay()
  {
  DateTimepervDaydate。AddDays(1);
  returnnewEcanChineseCalendar(pervDay);
  }
  endregion
  endregion
  }
  }

旗下第三方店铺涉嫌售卖他人论文且泄露个人信息百度文库回应来源:北京青年报旗下第三方店铺涉嫌售卖他人论文且泄露个人信息百度文库回应:永久封禁涉事店铺近日有媒体报道称,百度文库一店铺学姐帮帮忙涉嫌售卖他人论文,且泄露了论文作……神州泰岳演而优则唱,帮助传统企业找到最美的那朵云中国发展网记者成静数字化、网络化、智能化在数字化经济和实体经济是紧密结合的,对于所有像神州泰岳这样的服务型企业来说,云是唯一安全的入口。对于传统企业来说,上云不是一个问题……GTX10606G是低端电脑显卡吗?GTX10606G是低端电脑显卡吗?从这个问题就能看出小伙伴对显卡一无所知,这个GTX1060属于英伟达第十代显卡,整体定位甜点级别显卡,属于当年的主流显卡,即便是现在性……明明贵了100元,为什么懂行人更推荐一加ACE,而不是K50谁是懂行的人?谁更推荐一加ACE?你去买手机,店家绝对给你推荐利润更高的,而不是更好用和更适合的。先不管懂行的人怎么说,我们先看看一加Ace和红米K50有什么……正邦科技否认养殖贷,去年前9个月亏逾70亿,负债率75行业低谷期仍未结束,业绩变脸的正邦科技再陷资金链紧张的传闻。近日,网上流出一组疑似正邦科技内部会议的图片,称临近过年,为了在年前支付工程结算款防止猪场堵路,借助员工名义(……手持小米9,换870或者天玑1200的机子,还是等下一代旗舰感谢邀请手持小米9,换870或者天玑1200的机子,还是等下一代旗舰?题主问题的核心是手持小米9,换高通870或者是天玑1200的机子,还是等待下一代旗舰?这个问题我觉得……手机IP68防水是刚需吗?网友:有也有用、没有也不必刻意追求。我个人觉得这个IP68防水还是有用的。因为真的不小心手机掉进水里,如果不支持防水的话。去修理自己的爱机,很有可能就是一笔不小的开……vivoY10(4GB128GB)参数大全vivoY10vivoY10(4GB128GB)价格:1099元上市时间:2022年12月屏幕尺寸:6。51英寸分辨率:1600720屏幕像……银联手机闪付2。0版本全新发布实现支付全流程数字化来源:昆明日报掌上春城掌上春城讯近日,中国银联携手各大品牌手机厂商陆续上线手机闪付2。0版本。该版本在双击电源键快捷支付的基础上,进一步提升双击即用体验,实现绑卡、用卡、……新能源汽车车电分离如何彻底解决电动车电池续航里程焦虑?一、新能源汽车电池续航里程焦虑的原因一是如今电池技术限制。在插电混动和纯电的电池中,插混电车的电池续航里程一般为30Km以上,至今不超200Km,而纯电电车,一般在300……Wave7Research全球缺芯正影响除苹果之外的所有手机Wave7Research援引消息人士的话称困扰智能手机行业的组件与芯片短缺状况,正在影响除苹果之外的所有厂商。其在一份新报告中指出,供应短缺正在影响低成本的Android手机……美国缘何此时同意向华为供应汽车芯片?近年来,华为一直受到网络设备、智能手机相关的芯片及零部件的贸易限制,这一点延续到了目前的拜登政府,华为用于5G设备的芯片仍被限制。但据路透社消息,知情人士称,美国已向供应商发放……
清平乐启示总能把关系搞砸的我如何成为爱情中的女神?网友uuuu提问:跟男朋友分手第四天他跟他前女友复合了,我们三观不同生活环境不同可我还是特别伤心怎么办?前男友跟他前女友分手没多久跟我在一起了,因为我跟她分手了跟她……原来我们都错了,微信是一个生活方式最近,因为长安福特员工的不幸,微信工作群再次被推上风头浪尖。对于微信工作群,想必大家都是敢怒不敢言,在经济低迷的大环境下,还是先保住工作吧,毕竟连华为都开始裁员了。而今天……化身家庭数据中心,还能给游戏加速?360路由器V5X体验前言随着智能化的不断普及,你会发现如今的数码产品和智能家电,已经愈发离不开无线网络了,而网络的好坏往往取决于你所使用的路由器。对于大多数人而言,路由器给我们最直观的感受,……新动作不断,连开5天宣讲会,国美释放什么信号?这个十月,国美的动作不断真快乐App升级改版、公布最新的人事任命进行组织架构升级、全体中层在内的内部宣讲会和一份让股价大涨的公告国美这位34岁的零售行业老兵,这次亮剑,划……不止智能制造全系列,你要的工业一体机解决方案统统都有由于市场的发展及多样性变化,在很多领域,单一的硬件设备交易已经不能满足用户的使用需求,解决方案在市场中的地位越来越重要。解决方案顾名思义就是从市场到用户方方面面都涵盖到,产生过……加油站智能化改造,自助机柜是首要选择受疫情的推波助澜,数字经济获得了前所未有的发展机遇,新经济、新业态不断涌出,游戏、直播带货、线上教学、虚拟社交等也乘势获得跨越式发展。加上各项政策落地,经济刺激方案的推进,全社……白话NBA快船G5赢太阳拒绝出局,乔治正式获得与杜兰特PK的文大白大家好,我是大白。欢迎来到我的白话NBA。今天说一下太阳和快船G5的比赛,我先快速解析一下这个比赛的攻守逻辑,最后重点说一下乔治在这个比赛的表现。今天这个比赛……realmeX50Pro玩家版游戏实测还不错在配置方面,作为主打性能的realmeX50Pro玩家版自然毫不吝啬,该机搭载了最新的高通骁龙865处理器,采用了台积电7nm制程工艺和最新的A77架构,主频高达2。84GHz……Redmi官宣下周发布新耳机,或为高通芯卢伟冰不来个99元定Redmi官方微博今日发博称,将于9月6日(下周一)推出新款无线耳机RedmiBuds3。Redmi强调,这款耳机有技术党关注的硬核实力,难道也加入了主动降噪?Redmi……953家国家级绿色矿山名单出炉!看看你在名单内吗?2019年,绿色矿山建设有序推进,并取得阶段性突破,2020年对于绿色矿山建设,将是更为关键的一年!早在2018年10月1日起,自然资源部发布的《砂石行业绿色矿山建设规范……说说义和团有人说义和团是反智,愚昧的。简直蠢不可及!洋人拿着现代文明的成果在中国干尽了野蛮的事,还不许中国底层平民奋起反抗?!你这是什么逻辑?反智?你以为没有经历过产业革命的中国底层百姓……苹果第四季度光iPhone就卖了656亿美元超9000万部苹果周三公布了井喷式的收益报告。即使在新冠疫情期间每一条产品线的增长速度都超过了两位数,导致该公司第一季度的销售额超过1000亿美元,达到1114亿美元,创历史新高。这是苹果首……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网