我有两个向量表示月份,即1表示1月2日表示2月,依此类推...我们如何找到月份之间的差而不会得到负值?
示例
dates1 = [1、3、1];
dates2 = [12,1,0];
预期:日期2-日期1 = [11、10、11]
实际:[11,-2,-1]
答案 0 :(得分:2)
如果您有两个月的时间a
和b
,并且b
在a
之后,并且b
可能在第二年,则可以只需使用类似的内容:
diff = (b + 12 - a) % 12;
在b
中添加十二个字符确保它大于a
(有效地将其移动到下一年),并且使用模数确保十二个字符的添加不会使它移动a之后的两年内。
答案 1 :(得分:1)
您可以使用模运算:
const int MONTHS_PER_YEAR = 12;
int difference = ((month_1 + MONTHS_PER_YEAR) - month_2) % MONTHS_PER_YEAR;