2015-09-09 13 views
-1

需要跟蹤遊戲的當前季節(整數),在每個月的第一天增加1。如何在固定日期之後遞增每個月的整數?

它在運行時如何計算它自固定日期起一個月內第一次的次數?

示例:第1季開始的固定日期爲01/04/2015。用戶在09/09/15處使用該應用程序。在這一點上,應用程序需要知道,現在的季節現在是季節6

回答

-1

這相當於計算幾個月的差額,因爲那時不計算當天。所以這裏這個答案將適用於您的具體問題,以及: 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; 
+0

如果鏈接中包含了答案,爲什麼不選收的問題爲重複的,而不是重新發布? – DavidG

+0

問題是不同的,因爲他想要第一次通過的次數,而不是幾個月的差異。答案是一樣的,但我覺得有一個重要的語義差異。 – azt

+0

@DavidG:指出現在的差異。希望這對你很好。 *有*差異,取決於你如何定義它。只是想給一個類似的算法。 – azt

-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; 
+0

真的沒有必要發佈代碼運行的截圖,它沒有帶來任何額外的答案。 – DavidG

+0

@DavidG它顯示了Diff的值是'6' –

+1

這可以在文本中提到,圖像沒有增加任何價值。 – DavidG

相關問題