kowala's home

kowala's home
這裡是我的學習筆記,陸續增加中。
http://kowala21.blogspot.com

2011-06-14

使用comboBox來建立天干地支60甲子年選項。

使用 comboBox 來建立天干地支選單


            array ^ tangun=gcnew array {"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};
            array ^ dize=gcnew array {"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};          
            int i=0,j=0,count=0;
            while(count<60){
                comboBox4->Items->Insert(count,tangun[i]+dize[j]);  
                i++;j++,count++;
                i=i%10;j=j%12;              
            }              
          
 comboBox4->SelectedIndex=0;


上面預設選項是 0


再論天干地支與民國或西元間的轉換公式
首先須做一個六十甲子表,然後來推轉換公式,配合上列程式,count 就是序號。

count =0,甲子
count =1,乙丑
count =2,丙寅
...
count =59,癸亥
count =60,甲子

先與實際的干支定位,查農民曆知民國六十年為辛亥,序號count 就是47.西元就是60+1911=1971
依據干支60年循環一次,我們得知
民國六十年 = (60+47)%60=47,count =47  查六十甲子表= 辛亥
西元1971年 = (1971-1911+47)%60=47,count =47  查六十甲子表= 辛亥

依據上述可以歸納出一個公式

西元 count = (year-1911+47)%60
民國 count = (year+47)%60

然後可以設定選單
int year=1971; //西元
count=(year-1911+47)%60;
comboBox4->SelectedIndex=count;



這樣就把它轉成今年了

沒有留言:

張貼留言

請提供您的寶貴意見 ;-)