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