diff options
| author | John Baldwin <jhb@FreeBSD.org> | 2001-02-23 19:44:25 +0000 |
|---|---|---|
| committer | John Baldwin <jhb@FreeBSD.org> | 2001-02-23 19:44:25 +0000 |
| commit | 0b1d79321180990ffe6318f5814c7fbb5b12ed4a (patch) | |
| tree | fcbecf3e05d810769398bcc7db59cade4b043906 /sys/kern/init_main.c | |
| parent | 31e712239705b2db63b80edc788a98813ecd5e1e (diff) | |
Notes
Diffstat (limited to 'sys/kern/init_main.c')
| -rw-r--r-- | sys/kern/init_main.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/sys/kern/init_main.c b/sys/kern/init_main.c index 8eca076c9b35..3b68410a65ec 100644 --- a/sys/kern/init_main.c +++ b/sys/kern/init_main.c @@ -238,6 +238,30 @@ print_caddr_t(void *data __unused) } SYSINIT(announce, SI_SUB_COPYRIGHT, SI_ORDER_FIRST, print_caddr_t, copyright) +static void +print_bday(void *data __unused) +{ + struct timeval tv; + int day; + + getmicrotime(&tv); + + /* + * We modulus by 126230400 (4*365.25*24*60*60) and then check each + * valid day in the four years covered by that interval to account + * for leap years. Note that this will break in 2100 AD. + */ + day = (tv.tv_sec % 126230400) / (24*60*60); + + /* + * Day 0 is Jan 1, so day 22 of Feb is Feb 23. Leap year was '72, + * so the third year in each set is a leap year. + */ + if ((day == (31+22)) || (day == (31+22+365)) || + (day == (31+22+365+365)) || (day == (31+22+365+365+366))) + printf("\t---===> Happy Birthday Peter!!! <===---\n"); +} +SYSINIT(bday, SI_SUB_KTHREAD_IDLE, SI_ORDER_ANY, print_bday, NULL) /* *************************************************************************** |
