2012-12-27 20 views
1

我想知道如何計算此支付期限的最後日期?如何計算當前支付期限何時結束?

我知道工資是雙週的,第一期從01/09/2012開始。 到目前爲止,在這裏我做了什麼

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

這項工作完美,但它的工作完美的,因爲我已經手動將當前工資期間「2013年1月6日」的結局。

我的問題是我如何自動計算出當前支付期限的最後日期?

回答

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

這工作,因爲你永遠得到模運算回報多少天過去支付期間你已經離開。

+0

謝謝Mataniko :) – Jaylen