2015-03-17 3 views
0

В классе мы выполняем задание, чтобы получить диапазон между двумя датами, используя месяцы и годы в качестве входных данных.C++: Получение диапазона между двумя месяцами/годами

Мой код Процесс выглядит следующим образом:

int totalMonths1 = (year * MONTHS_IN_YEAR) + month; 
    int totalMonths2 = (year2 * MONTHS_IN_YEAR) + month2; 
    int range; 

    if(totalMonths1 > totalMonths2) 
    { 
     range = totalMonths1 - totalMonths2; 
    } 

    if(totalMonths1 < totalMonths2) 
    { 
     range = totalMonths2 - totalMonths1; 
    } 

С сопзЬ Int MONTHS_IN_YEAR = 12.

Это говорит мне разницу между двумя датами, но не диапазон. Если я добавлю 1 к результату, это правильный диапазон в соответствии с примером программы моего профессора, но я хотел бы знать, есть ли лучший способ получить диапазон вместо того, чтобы делать «разность + 1».

+0

Что делать, если 'totalMonths1 == totalMonths2'? – emlai

+0

Вы ищете более простое выражение, чем 'a - b + 1'? – Nemo

+0

use 'range = abs (totalMonths1 - totalMonths2) + 1' –

ответ

0

Нет. Он не получает ничего проще/лучше, чем a - b + 1. К сожалению, все остальное слишком усложняет решение и ненужно.

+0

Хорошо, тогда это то, что я буду Идите с благодарностью. – CSStudent120

Смежные вопросы