, :
/ : . mktime() ( mktime ..).
/ : , ! gregorian calendar. , , ( , , ). ( , , , , , ).
. mktime() : , , . "2010-01-60" 29 2010 . 1970 . ( 100%, " t, unix 1 1970 , , , mktime() unix).
Pseudo-Code, (YYYY-MM-DD):
void print_cal( int year ) {
static char weekdays[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
struct tm tm;
for( int day=0; day<365; ++day ) {
memset( &tm, 0, sizeof(tm) );
tm.tm_year = year - 1900;
tm.tm_mday = day;
mktime( &tm );
printf( "%04d-%02d-%02d, %s\n", tm.tm_year, tm.tm_mon+1, tm.tm_mday, weekdays[tm.tm_wday] );
}
}
. , ! , .
EDIT: .
source
share