/* File: mycal4.c 

   Step 4. Find out the number of days
   in a given month and year.
*/

#include <stdio.h>
#include "genlib.h"
#include "simpio.h"

int YearDays(int year) ; 
int MonthDays(int month, int year) ;
bool IsLeapYear(int year) ;

main() {
  int year, month ;
  int days_in_year, days_in_month ;

  printf("year =? ") ;
  year = GetInteger() ;
  printf("month =? ") ;
  month = GetInteger() ;
  days_in_year = YearDays(year) ;
  days_in_month = MonthDays(month,year) ;

  printf("year days = %d, month days = %d\n",
     days_in_year, days_in_month) ;

}

int YearDays(int year) {
   if (IsLeapYear(year)) {
      return(366) ;
   } else {
      return(365) ;
   }
}

int MonthDays(int month, int year) {
    switch (month) {
      case 2:
        if (IsLeapYear(year)) return (29);
        return (28);
      case 4: case 6: case 9: case 11:
        return (30);
      default:
        return (31);
    }
}

bool IsLeapYear(int year) {
    return ( ((year % 4 == 0) && (year % 100 != 0))
             || (year % 400 == 0) );
}
