1

この支払い期間の最終日を計算する方法を知りたいですか?

支払いは隔週で、最初の期間は 2012 年 9 月 1 日に始まりました。ここまで私がやってきたこと

    DateTime d = new DateTime();
    d = Convert.ToDateTime("01/09/2012");

    while (d <= Convert.ToDateTime("01/06/2013")) {

        PayPeriod.Items.Add(new ListItem(d.ToString("MM/dd/yyyy"), d.ToString("MM/dd/yyyy")));

        d = d.Date.AddDays(14);
    }

そして、これは完璧に機能しますが、現在の支払い期間の終了を手動で「01/06/2013」に設定したため、完璧に機能します。

私の質問は、現在の支払い期間の最終日をどのように自動的に把握できますか?

4

1 に答える 1

4

これは、次のロジックで簡単に実行できます。

DateTime startTime = new DateTime(2012,09,01);
DateTime now = DateTime.Now;
var diff = now.Subtract (startTime);
int daysToEndPeriod = diff.Days % 14;
if (daysToEndPeriod == 0)
    Console.WriteLine("end of pay period");
else
    Console.WriteLine("end of pay period is: " + DateTime.Now.AddDays(14-daysToEndPeriod).Date);

これが機能するのは、Modulo 演算子が支払い期間から何日残っているかを常に返すためです。

于 2012-12-27T02:24:49.180 に答える