日期:2011-09-30  浏览次数:20431 次

是2.0的,没有试验过,先保留着,以后还有用

以下是代码片段:
using System;
using System.Collections.Generic;
using System.Globalization;

namespace ChineseLunisolarCalendar
{
 class ChineseAlmanac : System.Globalization.ChineseLunisolarCalendar
 {
  private System.Globalization.ChineseLunisolarCalendar netCalendar = new System.Globalization.ChineseLunisolarCalendar();

  #region 加强

  /// <summary>
  /// 获取该农历对象的属相。
  /// </summary>
  /// <returns>0-11,如“鼠”为0</returns>
  public string GetAnimalSign(DateTime solarDateTime)
  {
   return "猪鼠牛虎兔龙蛇马羊猴鸡狗".Substring(Zhi(GetChineseEraOfYear(solarDateTime)), 1);
  }

  /// <summary>
  /// 获取年柱。
  /// </summary>
  public int GetChineseEraOfYear(DateTime solarDateTime)
  {
   int g = (solarDateTime.Year - 1900 + 36) % 60;
   if ((DayDifference(solarDateTime.Year, solarDateTime.Month, solarDateTime.Day) + solarDateTime.Hour / 24) < Term(solarDateTime.Year, 3, true) - 1)
   {//判断是否过立春
    g -= 1;
   }
   return g + 1;
  }

  /// <summary>
  /// 获取月柱。
  /// </summary>
  public int GetChineseEraOfMonth(DateTime solarDateTime)
  {
   int v = ((solarDateTime.Year - 1900) * 12 + solarDateTime.Month + 12) % 60;
   if (solarDateTime.Day <= GetSolarTerm(solarDateTime)[0].SolarTermDateTime.Day)
    v -= 1;
   return v + 1;
  }

  /// <summary>
  /// 获取日柱。
  /// </summary>
  public int GetChineseEraOfDay(DateTime solarDateTime)
  {
   double gzD = (solarDateTime.Hour < 23) ? EquivalentStandardDay(solarDateTime.Year, solarDateTime.Month, solarDateTime.Day) : EquivalentStandardDay(solarDateTime.Year, solarDateTime.Month, solarDateTime.Day) + 1;
   return (int) Math.Round((double) rem((int) gzD + 15, 60));
  }

  /// <summary>
  /// 获取时柱。
  /// </summary>
  public int GetChineseEraOfHour(DateTime solarDateTime)
  {
   double v = 12 * Gan(GetChineseEraOfDay(solarDateTime)) + System.Math.Floor((double) ((solarDateTime.Hour + 1) / 2)) - 11;
   if (solarDateTime.Hour == 23)
    v -= 12;
   return (int) Math.Round(rem(v, 60));
  }

  /// <summary>
  /// 获取指定日期的节气。
  /// </summary>
  /// <param name="year">要获取的年</param>
  /// <param name="month">要获取的月</param>
  /// <returns></returns>
  /// <remarks>
  /// 立春:立是开始的意思,春是蠢动,表示万物开始有生气,这一天春天开始。
  /// 雨水:降雨开始,雨水将多。
  /// 惊蛰:春雷响动,惊动蛰伏地下冬眠的生物,它们将开始出土活动。
  /// 春分:这是春季九十天的中分点,这一天昼夜相等,所以古代曾称春分秋分为昼夜分。
  /// 清明:明洁晴朗,气候温暖,草木开始萌发繁茂。
  /// 谷雨:雨生百谷的意思。雨水增多,适时的降雨对谷物生长很为有利。
  /// 立夏:夏天开始,万物渐将随温暖的气候而生长。
  /// 小满:满指籽粒饱满,麦类等夏热作物这时开始结籽灌浆,即将饱满。
  /// 芒种:有芒作物开始成熟,此时也是秋季作物播种的最繁忙时节。
  /// 夏至:白天最长,黑夜最短,这一天中午太阳位置最高,日影短至终极,古代又称这一天为日北至或长日至。
  /// 小暑:暑是炎热,此时还未到达最热。
  /// 大暑:炎热的程度到达高峰。
  /// 立秋:秋天开始,植物快成熟了。
  /// 处暑:处是住的意思,表示暑气到此为止。
  /// 白露:地面水气凝结为露,色白,是天气开始转凉了。
  /// 秋分:秋季九十天的中间,这一天昼夜相等,同春分一样,太阳从正东升起正西落下。
  /// 寒露:水露先白而后寒,是气候将逐渐转冷的意思。
  /// 霜降:水气开始凝结成霜。
  /// 立冬:冬是终了,作物收割后要收藏起来的意思,这一天起冬天开始。
&