Просмотр лет в месяцах - PullRequest
1 голос
/ 23 ноября 2011

Я пытаюсь создать программу, которая узнает, сколько месяцев они были живы, но столкнулись с некоторыми проблемами. Вот моя функция до сих пор:

int getResult(int year, month, day, endResult)
{
    int thisYear, thisMonth, thisDay;

    year = thisYear - year;

    year *= 12;
}

И то, что я пытаюсь сделать, показало бы вывод как:

Output: 
What year were you born? 
1989 
What month were you born? 
5 
What day were you born? 
23 
You are x months old.

Я собирался продолжить месяцы, но потом понял, что если месяц, в котором они родились, наступит после этого месяца или раньше? Так что, если у кого-нибудь есть какие-либо советы, как рассчитать это, я был бы признателен.

Ответы [ 2 ]

3 голосов
/ 23 ноября 2011

Посмотрим. Во-первых, скажем, теперь это:

year_now and month_now

и ваш день рождения:

year_birth and month_birth

Теперь мы идем от случая к случаю:

  • month_now == month_birth: как вы уже вычислили:

    months_old = (year_now-year_birth)*12
    
  • month_now > month_birth: легко, у вас есть:

    months_old = (year_now-year_birth)*12 + (month_now-month_birth)
    
  • month_now < month_birth: в этом случае (year_now-year_birth)*12 дает вам больше месяцев, чем необходимо, и вы должны вычесть:

    months_old = (year_now-year_birth)*12 - (month_birth-month_now)
    

Теперь, если вы посмотрите внимательно, вы увидите, что все они на самом деле имеют одну и ту же формулу:

months_old = (year_now-year_birth)*12 + (month_now-month_birth)

(в третьем случае month_now-month_birth отрицательно)

0 голосов
/ 23 ноября 2011
months = (thisyear-years)*12+(thisMonth-months)
if(months < 0)
    System.out.println("Invalid info")
else{
    //DO YOUR THANG BRO 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...