2016-07-25 93 views
0

我的系統管理員未能實際將AD中的密碼過期,現在我的密碼過期警告系統開始計數備份,而不是顯示負值日期。我期待剩下的日子成爲我的測試帳戶(5天假過期)的負數,從下面的代碼,希望有人可以告訴我爲什麼我失去了負面。從我在MSDN上讀到的,DateTime.Subtract可以返回負值。從DateTime中獲取負數.Subtract

DateTime today = DateTime.Now; 
foreach (User user in users) 
{ 
    DateTime expiryDate = user.pwdLastReset.AddDays(180); //pwd expires every 180 days 
    int remainingDays = Int32.Parse(expiryDate.Subtract(today).ToString("%d")); 
    //snipped code to send warnings at different days remaining. 
} 
+1

http://stackoverflow.com/questions/1607336/calculate-difference-between-two-dates-number-of-days –

+0

謝謝你!我到處搜索過,但顯然是使用了錯誤的搜索條件。感到驚訝的是,我一直在做錯了,但直到我們開始進入負面區域之前,結果似乎是正確的。 – dusk

回答

1

DateTime.ToString(「%d」)實際上會返回所表示的月份中的某一天。例如,下列代碼:

DateTime prev = DateTime.Now.Subtract(TimeSpan.FromDays(10)); 
Console.WriteLine(prev.ToString("%d")); 

打印出 「15」(如在 「2016年7月15」),不或-10。