2012-08-09 81 views
0

我使用這些代碼將公曆轉換爲儒略日曆,這沒有任何問題。轉換日曆

private void button1_Click(object sender, EventArgs e) 
    { 
     JulianCalendar juli = new JulianCalendar(); 
     DateTime dt = Convert.ToDateTime(textBox1.Text); 
     int day = juli.GetDayOfMonth(dt); 
     int month = juli.GetMonth(dt); 
     int year = juli.GetYear(dt); 
     string s = string.Format("{0}/{1}/{2}", month, day, year); 
     textBox2.Text = s; 
    } 

它給了我朱利安日期時間,但是當我想再次將它轉換爲公曆時間,它不會工作。我使用以下代碼將Julian日曆轉換爲公曆。有什麼問題?

private void button2_Click(object sender, EventArgs e) 
    { 
     string juli = textBox3.Text; 
     string[] parts = juli.Split('/', '-'); 
     JulianCalendar jul = new JulianCalendar(); 
     DateTime dta = jul.ToDateTime(Convert.ToInt32(parts[0]), Convert.ToInt32(parts[1]), Convert.ToInt32(parts[2]), 0, 0, 0, 0); 
     string sta = dta.ToShortDateString(); 
     textBox4.Text = sta; 
    } 

回答

1

問題在於參數的順序。它應該是(在button2_Click事件)

DateTime dta = juli2.ToDateTime(Convert.ToInt32(parts[2]), Convert.ToInt32(parts[0]), Convert.ToInt32(parts[1]), 0, 0, 0, 0); 

因爲ToDateTime方法的簽名如下:

public virtual System.DateTime ToDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond) 
+0

感謝。有效。我應該爲其他日曆或僅爲Julian日曆執行此操作嗎? – aliboy38 2012-08-10 05:44:27

+0

@ aliboy38只是檢查方法的簽名,並把年,月和日放在正確的地方 – 2012-08-10 08:59:28

+0

是2月份,0日份和1年份? – aliboy38 2012-08-10 13:55:28