Csharp: 阴历年甲子干支算法錯誤問題

 /// <summary>
        /// 农历日历
        /// </summary>
        private static ChineseLunisolarCalendar calendar = new ChineseLunisolarCalendar();
        /// <summary>
        /// 中文数字
        /// </summary>
        private static string ChineseNumber = "〇一二三四五六七八九";
        /// <summary>
        /// 甲子
        /// </summary>
        public const string CelestialStem = "甲乙丙丁戊己庚辛壬癸";
        /// <summary>
        /// 阴历年干支
        /// </summary>
        public const string TerrestrialBranch = "子丑寅卯辰巳午未申酉戌亥";
        /// <summary>
        /// 属相
        /// </summary>
        public const string ShuXiang = "鼠牛虎兔龙蛇马羊猴鸡狗猪";

        /// <summary>
        /// 甲子记年法
        /// </summary>
        /// <param name="time"></param>
        /// <returns></returns>
        public static string GetStemBranch(DateTime time)
        {
            string stemBranch = string.Empty;
            int sexagenaryYear = calendar.GetSexagenaryYear(time);//与指定日期对应的甲子(60 年)循环中的年
            if (sexagenaryYear % 10 == 0 && sexagenaryYear % 12 == 0)
            {
                 stemBranch = CelestialStem.Substring(sexagenaryYear % 10+9, 1) + TerrestrialBranch.Substring(sexagenaryYear % 12 +11, 1);
            }
            else if (sexagenaryYear % 10 != 0 && sexagenaryYear % 12 == 0)
            {
                stemBranch = CelestialStem.Substring(sexagenaryYear % 10 - 1, 1) + TerrestrialBranch.Substring(sexagenaryYear % 12 +11, 1);
            }
            else if (sexagenaryYear % 10 == 0 && sexagenaryYear % 12 != 0)
            {
                stemBranch = CelestialStem.Substring(sexagenaryYear % 10+9, 1) + TerrestrialBranch.Substring(sexagenaryYear % 12 -1, 1);
            }
            else
            {
                stemBranch = CelestialStem.Substring(sexagenaryYear % 10 - 1, 1) + TerrestrialBranch.Substring(sexagenaryYear % 12 - 1, 1);
            }
            return stemBranch;
        }
        /// <summary>
        /// 生肖
        /// </summary>
        /// <param name="time"></param>
        /// <returns></returns>
        public static string GetSX(DateTime time)
        {
            string SX = string.Empty;
            int sexagenaryYear = calendar.GetSexagenaryYear(time);//与指定日期对应的甲子(60 年)循环中的年
            if (sexagenaryYear % 12 == 0)
            {
                SX = ShuXiang.Substring(sexagenaryYear % 12 + 11, 1);
            }
            else
            {
                SX = ShuXiang.Substring(sexagenaryYear % 12 - 1, 1);
            }
            return SX;
        }
        /// <summary>
        ///
        /// </summary>
        public GZForm()
        {
            InitializeComponent();
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void GZForm_Load(object sender, EventArgs e)
        {
            this.label1.Text = "农历今天是:" + GetStemBranch(DateTime.Now) + "年";
            this.label2.Text = "农历今生肖是:" + GetSX(DateTime.Now);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button1_Click(object sender, EventArgs e)
        {
            this.label1.Text = "农历是:" + GetStemBranch(this.dateTimePicker1.Value) + "年";
            this.label2.Text = "生肖是:" + GetSX(this.dateTimePicker1.Value);
        }
    }
时间: 2024-08-20 12:00:35

Csharp: 阴历年甲子干支算法錯誤問題的相关文章

picturebox-影像處理C#程式碼相關問題請大大幫忙修正哪裡錯誤

问题描述 影像處理C#程式碼相關問題請大大幫忙修正哪裡錯誤 公式如圖片程式碼如下: 我已經先把 pictureBox2.Image是IL ==>也是放大後影像 pictureBox3.Image是Iold ==>濾波後的影像 height = this.pictureBox2.Image.Height; width = this.pictureBox2.Image.Width; Bitmap bitmap1 = new Bitmap(pictureBox2.Image); Bitmap bit

導致5個錯誤的問題???

问题描述 如題...都是這GamblingLock跟getGambling原因~該如何排除呢???導致問題的源碼(1)L1GamblinggamInfo=GamblingLock.create().getGambling(gamId);導致問題的源碼(2)L1Gambling[]list=GamblingLock.create().getGamblingList();導致問題的源碼(3)GamblingLock.create().create(_gam.get_gamId(),npcId,npc

mysql-執行階段錯誤&amp;amp;#39;13&amp;amp;#39; 型態不符合 ----VBA 連接MYSQL多表查詢

问题描述 執行階段錯誤'13' 型態不符合 ----VBA 連接MYSQL多表查詢 ** 請教各位高手: 我在VBA中如下連接mysql單表查詢沒問題,有數據出來. ** .CommandText = Array( _ "select " _ & "proc_hist_0.prod_pn , proc_hist_0.LOT_NO, proc_hist_0.proc_ID, proc_hist_0.IN_TIME, proc_hist_0.IN_QTY, proc_hi

更改package名稱後出現錯誤

问题描述 更改package名稱後出現錯誤 https://gist.github.com/anonymous/61ee581624e276800707d791326472cb 已有將jni以及upnp兩個資料夾裡的檔案有原本名稱換成更改後名稱 想請問是哪裡出了問題?

Comparison method violates its general contract! 錯誤

问题描述 請問出現java.lang.IllegalArgumentException:Comparisonmethodviolatesitsgeneralcontract!的錯誤訊息查了網路確認是JDK1.7的關係有人說必須更嚴謹的編寫程式碼請問以下的程式碼應該要怎麼改才能避掉這個錯誤呢?謝謝各位的幫忙publicintcompare(Objectoa,Objectob){SortForObjecta=(SortForObject)oa;SortForObjectb=(SortForObjec

sqlMigration for sybase 使用odbc provider出現下圖錯誤訊息

问题描述 sqlMigration for sybase 使用odbc provider出現下圖錯誤訊息 各位大大 小弟在做sqlmigration sybase 轉換至ms sql 2012 出現下面的錯誤訊息 請問該怎麼修改設定 解决方案 台湾的朋友?你的字符集的设置有问题,google下sql server字符集设置.

無法連接至 &amp;amp;#x27;http://www.zxb.com/&amp;amp;#x27;,發生下列錯誤: 無法建立 Web &amp;amp;#x27;http://www.zxb.com/&amp;amp;#x27;。 Web 伺服器可能未安裝 FrontPage Server Extension。

问题描述 各位,我有安裝FrontPage2003和FrontPage2000ServerExtension,但我在發行軟件時(比如http://www.zxb.com/)時無法發行,出現如下錯誤:錯誤1無法連接至'http://www.zxb.com/',發生下列錯誤:無法建立Web'http://www.zxb.com/'.Web伺服器可能未安裝FrontPageServerExtension.11WindowsApplication1請問是怎麼回事,該如何解決呢? 解决方案 解决方案二:I

最新關於域名解析錯誤的有效方法

      因特網用戶往往使用域名來訪問網站,系統必須將域名轉換成IP地址,才能正確通過各級路由器,訪問到正確的網站內容.域名的轉換工作,壹般是由DNS(域名解析伺服器)來完成.但有時用戶會發現,輸入正確的域名後,也不能訪問到正確的內容,這種情況,壹般有兩種可能性較大,壹是網站故障停止運行:二是域名解析出現錯誤.本文,主要是針對域名解析出錯,提供幾種可行的處理辦法.       如果發現不能使用正確的域名訪問網站,可以嘗試獲取該網站正確的IP地址,直接利用IP地址訪問網站.獲取IP地址的方法有多

[JSP/Servlet入門]JSP錯誤處理

js|servlet 剛開始撰寫JSP時,總是會被JSP的除錯訊息所困擾,如果沒有稍微瞭解JSP與Servlet之間運作關係的初學者,所看到的只是一堆除錯訊息,甚至例外發生的訊息,這些訊息雖然包括詳細的錯誤訊息,但對於初學者而言卻是不友善.不易閱讀理解的.基本上,只要瞭解JSP與Servlet之間的運作關係,並瞭解Java編譯訊息與例外處理,要瞭解在撰寫JSP網頁時,因錯誤而產生的錯誤報告頁面就不是件難事. 我們知道JSP終究會轉換為Servlet,而運行時真正動作的是Servlet類,所以錯誤