Exemple #1
0
    //int GetSexagenaryYear (DateTime time) 获取指定公历日期的农历年份的干支纪年
    //int GetSexagenaryYear (DateTime time) 获取指定公历日期的农历年份的干支纪年,从1到60,分别是甲子、乙丑、丙寅、….癸亥, 比如戊戌变法、辛亥革命就是按这个来命名的。当然算八字也少不了这个。
    //nt GetTerrestrialBranch (int sexagenaryYear) ) 获取一个干支的地支,, 从1到12, 表示子、丑、寅、…今年是狗年,
    public string GetStemBranch(DateTime time)
    {
        int    sexagenaryYear = calendar.GetSexagenaryYear(time);
        string stemBranch     = CelestialStem.Substring(calendar.GetCelestialStem(sexagenaryYear) - 1, 1) + TerrestrialBranch.Substring(calendar.GetTerrestrialBranch(sexagenaryYear) - 1, 1);

        return(stemBranch);
    }
        /// <summary>
        /// 获取十二生肖
        /// </summary>
        /// <param name="aDateTime"></param>
        /// <returns></returns>
        public static string Get12Lunar(DateTime aDateTime)
        {
            System.Globalization.ChineseLunisolarCalendar chinseCaleander = new System.Globalization.ChineseLunisolarCalendar();
            string TreeYear = "鼠牛虎兔龙蛇马羊猴鸡狗猪";
            int    intYear  = chinseCaleander.GetSexagenaryYear(aDateTime);

            return(I3StringUtil.SubString(TreeYear, chinseCaleander.GetTerrestrialBranch(intYear) - 1, 1));
        }
        /// <summary>
        /// 获取生肖,要求传入阳历的年月日
        /// </summary>
        /// <param name="year">年</param>
        /// <param name="month">月</param>
        /// <param name="day">日</param>
        /// <returns>生肖</returns>
        public static string GetYearOfBirth(string year, string month, string day) {

            var chineseCalender = new ChineseLunisolarCalendar();
            // 使用传入年月日实例化时间
            var dtm = new DateTime(int.Parse(year), int.Parse(month), int.Parse(day));
            // 获得传入年月日的地支
            var sexagenaryYear = chineseCalender.GetSexagenaryYear(dtm);
            // 截取生肖
            var yearOfBirth = YEAR_TREE.Substring(chineseCalender.GetTerrestrialBranch(sexagenaryYear) - 1, 1);

            return yearOfBirth;
        }
        ///<summary>
        ///中国式的时间格式
        ///子时:23:00-1:00
        ///丑时:1:00-3:00
        ///寅时:3:00-5:00
        ///卯时:5:00-7:00
        ///辰时:7:00-9:00
        ///巳时:9:00-11:00
        ///午时:11:00-13:00
        ///未时:13:00-15:00
        ///申时:15:00-17:00
        ///酉时:17:00-19:00
        ///戌时:19:00-21:00
        ///亥时:21:00-23:00
        /// </summary>
        /// <param name="date">时间参数</param>
        /// <returns></returns>
        public static string GetChineseDate(DateTime date)
        {
            var cnDate = new ChineseLunisolarCalendar();
            string[] arrMonth = { "", "正月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "冬月", "腊月" };
            string[] arrDay = { "", "初一", "初二", "初三", "初四", "初五", "初六", "初七", "初八", "初九", "初十", "十一", "十二", "十三", "十四", "十五", "十六", "十七", "十八", "十九", "廿一", "廿二", "廿三", "廿四", "廿五", "廿六", "廿七", "廿八", "廿九", "三十" };
            string[] arrYear = { "", "甲子", "乙丑", "丙寅", "丁卯", "戊辰", "己巳", "庚午", "辛未", "壬申", "癸酉", "甲戌", "乙亥", "丙子", "丁丑", "戊寅", "己卯", "庚辰", "辛己", "壬午", "癸未", "甲申", "乙酉", "丙戌", "丁亥", "戊子", "己丑", "庚寅", "辛卯", "壬辰", "癸巳", "甲午", "乙未", "丙申", "丁酉", "戊戌", "己亥", "庚子", "辛丑", "壬寅", "癸丑", "甲辰", "乙巳", "丙午", "丁未", "戊申", "己酉", "庚戌", "辛亥", "壬子", "癸丑", "甲寅", "乙卯", "丙辰", "丁巳", "戊午", "己未", "庚申", "辛酉", "壬戌", "癸亥" };

            var lYear = cnDate.GetYear(date);
            var sYear = arrYear[cnDate.GetSexagenaryYear(date)];
            var lMonth = cnDate.GetMonth(date);
            var lDay = cnDate.GetDayOfMonth(date);

            //获取第几个月是闰月,等于0表示本年无闰月
            var leapMonth = cnDate.GetLeapMonth(lYear);
            var sMonth = arrMonth[lMonth];
            //如果今年有闰月
            if (leapMonth > 0)
            {
                //闰月数等于当前月份
                sMonth = lMonth == leapMonth ? string.Format("闰{0}", arrMonth[lMonth - 1]) : sMonth;
                sMonth = lMonth > leapMonth ? arrMonth[lMonth - 1] : sMonth;
            }
            return string.Format("{0}年{1}{2}", sYear, sMonth, arrDay[lDay]);
        }
Exemple #5
0
        //显示农历日期
        string GetCNDate()
        {
             DateTime m_Date; //今天的日期
             int cny; //农历的年月日
             int cnm; //农历的年月日
             int cnd; //农历的年月日
             int icnm; //农历闰月

             m_Date = DateTime.Today;
            ChineseLunisolarCalendar cnCalendar =new ChineseLunisolarCalendar();
            cny = cnCalendar.GetSexagenaryYear(m_Date);
            cnm = cnCalendar.GetMonth(m_Date);
            cnd = cnCalendar.GetDayOfMonth(m_Date);
            icnm = cnCalendar.GetLeapMonth(cnCalendar.GetYear(m_Date));


            string txcns = "农历";
            const string szText1 = "癸甲乙丙丁戊己庚辛壬";
            const string szText2 = "亥子丑寅卯辰巳午未申酉戌";
            const string szText3 = "猪鼠牛虎免龙蛇马羊猴鸡狗";
            int tn = cny % 10; //天干
            int dn = cny % 12;  //地支
            //txcns += szText1.Substring(tn, 1);
            //txcns += szText2.Substring(dn, 1);
            //txcns += "(" + szText3.Substring(dn, 1) + ")年";

            //格式化月份显示
            string[] cnMonth ={ "", "正月", "二月", "三月", "四月", "五月", "六月"
                , "七月", "八月", "九月", "十月", "十一月", "十二月", "十二月" };
            if (icnm > 0)
            {
                for (int i = icnm + 1; i < 13; i++)
                    cnMonth[icnm] = cnMonth[icnm - 1];
                cnMonth[icnm] = "闰" + cnMonth[icnm];
            }
            txcns += cnMonth[cnm];
            string[] cnDay ={ "", "初一", "初二", "初三", "初四", "初五", "初六", "初七"
                , "初八", "初九", "初十", "十一", "十二", "十三"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   , "十四", "十五", "十六"
                , "十七", "十八", "十九", "二十", "廿一", "廿二", "廿三", "廿四", "廿五"
                , "廿六", "廿七", "廿八", "廿九", "三十" };
            txcns += cnDay[cnd];
            return txcns;
        }
 /// <summary>
 /// 返回生肖
 /// </summary>
 /// <param name="datetime">公历日期</param>
 /// <returns></returns>
 public static string GetShengXiao(this ChineseLunisolarCalendar calendar, DateTime datetime)
 {
     return(_shengxiao[calendar.GetTerrestrialBranch(calendar.GetSexagenaryYear(datetime)) - 1]);
 }
Exemple #7
0
        string GetCNDate()
        {
            DateTime m_Date; //���������
            int cny; //ũ����������
            int cnm; //ũ����������
            int cnd; //ũ����������
            int icnm; //ũ������

            m_Date = DateTime.Today;
            ChineseLunisolarCalendar cnCalendar = new ChineseLunisolarCalendar();
            cny = cnCalendar.GetSexagenaryYear(m_Date);
            cnm = cnCalendar.GetMonth(m_Date);
            cnd = cnCalendar.GetDayOfMonth(m_Date);
            icnm = cnCalendar.GetLeapMonth(cnCalendar.GetYear(m_Date));

            string txcns = "ũ��";
            const string szText1 = "����ұ����켺������";
            const string szText2 = "���ӳ���î������δ������";
            const string szText3 = "����ţ������������F��";
            int tn = cny % 10; //���
            int dn = cny % 12;  //��֧
            //txcns += szText1.Substring(tn, 1);
            //txcns += szText2.Substring(dn, 1);
            //txcns += "(" + szText3.Substring(dn, 1) + ")��";

            //��ʽ���·���ʾ
            string[] cnMonth ={ "", "����", "����", "����", "����", "����", "����"
                , "����", "����", "����", "ʮ��", "ʮһ��", "ʮ����", "ʮ����" };
            if (icnm > 0)
            {
                for (int i = icnm + 1; i < 13; i++)
                    cnMonth[icnm] = cnMonth[icnm - 1];
                cnMonth[icnm] = "��" + cnMonth[icnm];
            }
            txcns += cnMonth[cnm];
            string[] cnDay ={ "", "��һ", "����", "����", "����", "����", "����", "����"
                , "����", "����", "��ʮ", "ʮһ", "ʮ��", "ʮ��"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   , "ʮ��", "ʮ��", "ʮ��"
                , "ʮ��", "ʮ��", "ʮ��", "��ʮ", "إһ", "إ��", "إ��", "إ��", "إ��"
                , "إ��", "إ��", "إ��", "إ��", "��ʮ" };
            txcns += cnDay[cnd];
            return txcns;
        }