#include <time.h>
varargs int mud_sec(int i) {
if(!i) i=time();
return (i/PART_SEC)%SECOND;
}
varargs int mud_min(int i) {
if(!i) i=time();
return (i/(PART_SEC*SECOND))%MINUTE;
}
varargs int mud_hour(int i) {
if(!i) i=time();
return (i/(PART_SEC*SECOND*MINUTE))%HOUR;
}
varargs int mud_day(int i) {
if(!i) i=time();
return (i/(PART_SEC*SECOND*MINUTE*HOUR))%DAY;
}
varargs int mud_month(int i) {
if(!i) i=time();
return (i/(PART_SEC*SECOND*MINUTE*HOUR*DAY*WEEK))%MONTH;
}
varargs int mud_year(int i) {
if(!i) i=time();
return (i/(PART_SEC*SECOND*MINUTE*HOUR*DAY*WEEK*MONTH));
}
varargs string mud_time(int i) {
return ""+mud_hour(i)+":"+mud_min()+":"+mud_sec();
}
varargs string mud_date(int i) {
return ""+DAYS[mud_day(i)]+" the "+ordinal((mud_day(i)+1))+" day of "+MONTHS[mud_month(i)]+" of the year "+mud_year(i);
}