如何为固定日期后的每个月增加一个整数

本文关键字:增加 整数 一个 日期 | 更新日期: 2023-09-27 18:11:46

需要跟踪游戏的当前赛季(以整数形式),在每个月的1号增加1。

如何在运行时计算自固定日期以来在一个月中的第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号,你必须再加一个月,无论你是否想要计算它。

int months = (now.Month - start.Month) + 12 * (now.Year - start.Year) + (start.Day == 1 ? 1 : 0);

或者,如果您想要基于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;