我想知道如何计算此付款期的最后日期?
我知道薪水是两周一次,第一期是在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”。
我的问题是如何自动计算当前支付期的最后日期?
答案 0 :(得分: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运算符返回您离开的支付期之后的天数。