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

📄 date.cs

📁 OA系统源码 办公应用软件源码 asp.net 开发
💻 CS
📖 第 1 页 / 共 3 页
字号:
                return (iMonth - 1) * 2 + 1;
            }
            else
            {
                return (iMonth - 1) * 2;
            }
        }
        else
        {
            return -1;
        }
    }


    /// <summary>
    /// 格式化节气序号为节气名称。
    /// </summary>
    /// <param name="SolarTermIndex">节气序号。</param>
    /// <returns>节气名称。</returns>
    private string FormatSolarTerm(int SolarTermIndex)
    {
        //string[] stroe = {"小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至"};
        if (SolarTermIndex <= this.LunarHolDayName.Length && SolarTermIndex >= 0)
            return this.LunarHolDayName[SolarTermIndex];
        return "";
    }

    #endregion

    #region 年月日

    /// <summary>
    /// 格式化阴历月份。
    /// </summary>
    /// <param name="iYear">年份。</param>
    /// <returns>干支记年。</returns>
    private string FormatLunarYear(int iYear)
    {
        string strG = "甲乙丙丁戊己庚辛壬癸";
        string strZ = "子丑寅卯辰巳午未申酉戌亥";
        return strG.Substring((iYear - 4) % 10, 1) + strZ.Substring((iYear - 4) % 12, 1);
    }


    /// <summary>
    /// 格式化阴历年份。
    /// </summary>
    /// <param name="iYear">年份。</param>
    /// <returns>生肖。</returns>
    private string FormatAnimalYear(int iYear)
    {
        string strSX = "鼠牛虎免龙蛇马羊猴鸡狗猪";
        return strSX.Substring((iYear - 4) % 12, 1);
    }


    /// <summary>
    /// 格式化阴历月份。
    /// </summary>
    /// <param name="iMonth">月份。</param>
    /// <returns>中文月份。</returns>
    public string FormatLunarMonth(int iMonth)
    {
        string szText = "正二三四五六七八九十";
        if (iMonth <= 10) return szText.Substring(iMonth - 1, 1) + "月";
        if (iMonth == 11) return "十一月";
        if (iMonth == 12) return "十二月";
        return "";
    }


    /// <summary>
    /// 格式化阴历日子。
    /// </summary>
    /// <param name="iDay">日子。</param>
    /// <returns>中文日子。</returns>
    public string FormatLunarDay(int iDay)
    {
        string szText1 = "初十廿三";
        string szText2 = "一二三四五六七八九十";
        string strDay = "";
        if (iDay != 20 && iDay != 30)
        {
            try
            {
                strDay = szText1.Substring((iDay - 1) / 10, 1);
                strDay = strDay + szText2.Substring((iDay - 1) % 10, 1);
            }
            catch (Exception)
            {

            }
        }
        else
        {
            strDay = szText1.Substring((iDay / 10), 1);
            strDay = strDay + "十";
        }
        return strDay;
    }

    #endregion

    #region OutPut

    /// <summary>阴历日期,以LunarDate(年日月)形式表示。</summary>
    public LunarDate LunarDate
    {
        get
        {
            if (this.m_LunarDate == null)
            {
                ushort iYear, iMonth, iDay;
                TimeSpan ts = m_Date - (new DateTime(START_YEAR, 1, 1));
                this.CalcLunarDate(out iYear, out iMonth, out iDay, (uint)(ts.Days));
                this.m_LunarDate = new LunarDate(iYear, iMonth, iDay);
            }
            return this.m_LunarDate;
        }
    }


    /// <summary>阴历干支记年。</summary>
    public string LunarYear
    {
        get
        {
            if (m_LunarYear == "")
                this.m_LunarYear = this.FormatLunarYear(this.LunarDate.Year);
            return this.m_LunarYear;
        }
    }


    /// <summary>阴历生肖。</summary>
    public string Animal
    {
        get
        {
            if (m_Animal == "")
                this.m_Animal = this.FormatAnimalYear(this.LunarDate.Year);
            return this.m_Animal;
        }
    }


    /// <summary>格式化后的阴历月份。</summary>
    public string LunarMonth
    {
        get
        {
            if (this.m_LunarMonth == "")
                this.m_LunarMonth = this.FormatLunarMonth(ushort.Parse(this.LunarDate.Month.ToString()));
            return this.m_LunarMonth;
        }
    }


    /// <summary>格式化后的阴历日子。</summary>
    public string LunarDay
    {
        get
        {
            if (this.m_LunarDay == "")
                this.m_LunarDay = this.FormatLunarDay(ushort.Parse(this.LunarDate.Day.ToString()));
            return this.m_LunarDay;
        }
    }


    /// <summary>格式化后的阴历节气。</summary>
    public string SolarTerm
    {
        get
        {
            if (this.m_SolarTerm == "")
                this.m_SolarTerm = this.FormatSolarTerm(this.GetSolarTermIndex());
            return this.m_SolarTerm;
        }
    }


    /// <summary>格式化后的星座。</summary>
    public string Constellation
    {
        get
        {
            if (this.m_Constellation == "")
                this.m_Constellation = this.FormatConstellation(this.GetConstellationIndex());
            return this.m_Constellation;
        }
    }

    #endregion
}

public class LunarDate
{
    private int _y, _m, _d;
    private string lunardate = "";
    private string lunarmonth = "", lunarday = "", lunaryear = "";
    private string solarterm = "", animal = "";


    public LunarDate(DateTime dt)
    {
        LunarDateClass ldc = new LunarDateClass(dt);
        this.lunarday = ldc.LunarDay;
        this.lunarmonth = ldc.LunarMonth;
        this.lunaryear = ldc.LunarYear;
        this.solarterm = ldc.SolarTerm;
        this.animal = ldc.Animal;
        this.lunardate = this.lunaryear + "(" + this.animal + ")年" + this.lunarmonth + this.lunarday + (this.solarterm == "" ? "" : " " + this.solarterm);
        this._y = ldc.LunarDate.Year;
        this._m = ldc.LunarDate.Month;
        this._d = ldc.LunarDate.Day;
    }
    public LunarDate(int y, int m, int d)
    {
        this._y = y;
        this._m = m;
        this._d = d;
    }

    public int Year
    {
        get { return this._y; }
    }


    public int Month
    {
        get { return this._m; }
    }


    public int Day
    {
        get { return this._d; }
    }


    public string LunarDay
    {
        get
        {
            return this.lunarday;
        }
    }


    public string LunarMonth
    {
        get
        {
            return this.lunarmonth;
        }
    }


    public string LunarYear
    {
        get
        {
            return this.lunaryear;
        }
    }


    public string SolarTerm
    {
        get
        {
            return this.solarterm;
        }
    }


    public string Animal
    {
        get
        {
            return this.animal;
        }
    }


    public new string ToString()
    {
        return this.lunardate;
    }

}


#endregion

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -