需要跟蹤遊戲的當前季節(整數),在每個月的第一天增加1。如何在固定日期之後遞增每個月的整數?
它在運行時如何計算它自固定日期起一個月內第一次的次數?
示例:第1季開始的固定日期爲01/04/2015
。用戶在09/09/15
處使用該應用程序。在這一點上,應用程序需要知道,現在的季節現在是季節6
。
需要跟蹤遊戲的當前季節(整數),在每個月的第一天增加1。如何在固定日期之後遞增每個月的整數?
它在運行時如何計算它自固定日期起一個月內第一次的次數?
示例:第1季開始的固定日期爲01/04/2015
。用戶在09/09/15
處使用該應用程序。在這一點上,應用程序需要知道,現在的季節現在是季節6
。
這相當於計算幾個月的差額,因爲那時不計算當天。所以這裏這個答案將適用於您的具體問題,以及: https://stackoverflow.com/a/1526004/2606322
int months = (now.Month - start.Month) + 12 * (now.Year - start.Year);
然而有一個微妙的差異。如果您的開始日期是1日,則無論您是否要計算該日期,都必須再添加一個月。或者,如果你想有一個基於1的計數,只需加1,就像你在你的例子中可能做的那樣。
int months = (now.Month - start.Month) + 12 * (now.Year - start.Year) + 1;
如果我理解正確的問題
DateTime dt1 = new DateTime(2014, 4, 1);
DateTime dt2 = DateTime.Now;
// since you have taken the "1" start is 01/04/2015.
int Diff = (dt2.Month - dt1.Month) + ((dt2.Year - dt1.Year) * 12) + 1;
如果鏈接中包含了答案,爲什麼不選收的問題爲重複的,而不是重新發布? – DavidG
問題是不同的,因爲他想要第一次通過的次數,而不是幾個月的差異。答案是一樣的,但我覺得有一個重要的語義差異。 – azt
@DavidG:指出現在的差異。希望這對你很好。 *有*差異,取決於你如何定義它。只是想給一個類似的算法。 – azt