2

プログラムの実行時の現在の年がうるう年 (4 で割り切れる、100 で割り切れないが、400 で割り切れる) かどうかを計算する必要がありますが、DateTime.LeapYear プロパティは使用しません。誰でも何か提案できますか?

//DateTimePicker コード

    private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
    {
        DateTime now;
        int[] months = {31,28,31,30,31,30,31,31,30,31,30,31};
        now = DateTime.Now.Date;
        if (now.Year / 4 == 0 && now.Year / 400 == 0)
        {
            months(1) = 29;
        }
    }
4

2 に答える 2

5

これは、次の 3 つの基準を満たしていると思います。

var year = now.Year;

if (year % 4 == 00 && !(year % 100 == 0 && year % 400 != 0))
{
    ....
}
于 2014-03-10T11:30:35.047 に答える
0

%割り切れるかどうかをチェックするときは、剰余演算子を使用します。[]また、配列を変更するときは、括弧ではなく配列インデクサーを使用します。

    if (now.Year % 4 == 0 && now.Year % 400 == 0)
    {
        months[1] = 29;
    }
于 2014-03-10T11:27:18.487 に答える