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;
    }

ユリウス暦の時刻が表示されますが、正確にその日時のグレゴリオ暦に再度変換したい場合は機能しません。ユリウス暦をグレゴリオ暦に変換するには、次のコードを使用します。どうしたの?

 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;
    }
4

1 に答える 1

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)
于 2012-08-09T23:36:09.543 に答える