找出月份中的整数差

时间:2018-11-14 00:24:03

标签: c++

我有两个向量表示月份,即1表示1月2日表示2月,依此类推...我们如何找到月份之间的差而不会得到负值?

示例

dates1 = [1、3、1];

dates2 = [12,1,0];

预期:日期2-日期1 = [11、10、11]

实际:[11,-2,-1]

2 个答案:

答案 0 :(得分:2)

如果您有两个月的时间ab,并且ba之后,并且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;