1

我想知道如何计算这个支付期的最后日期?

我知道工资是双周的,第一期从 2012 年 1 月 9 日开始。到目前为止我所做的

    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 回答