static int day_tab[2][13] = { {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} } ; daytodate_(year,yearday, month, day) /* set month, day */ int *year, *yearday, *month, *day ; { int i, leap ; leap = *year%4 == 0 && *year%100 != 0 || *year%400 == 0 ; for (i = 1; *yearday > day_tab[leap][i] ; i++) *yearday -= day_tab[leap][i] ; *month = i ; *day = *yearday ; } datetoday(year,month,day,yearday) /* set yearday */ int *year, *month, *day, *yearday ; { int i, leap ; leap = *year%4 == 0 && *year%100 != 0 || *year%400 == 0 ; *yearday = *day ; for (i = 1; i < *month ; i++ ) *yearday += day_tab[leap][i] ; }