home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1994 #1 / monster.zip / monster / PROG_C / SNPD9404.ZIP / DAYNUM.C < prev    next >
C/C++ Source or Header  |  1994-04-03  |  1KB  |  42 lines

  1. .I 6 2
  2. #include "scaldate.h"
  3.  
  4. .D 7 2
  5. .D 12 14
  6. .I 40 14
  7. **  Return the day of the week
  8. */
  9.  
  10. int dow(unsigned yr, unsigned mo, unsigned day)
  11. {
  12.  
  13. #if (!ISO)        /* Sunday(0) -> Saturday(6) (i.e. U.S.) calendars  */
  14.       return (ymd_to_scalar(yr, mo, day) % 7L);
  15. #else             /* International Monday(0) -> Sunday(6) calendars  */
  16.       return ((ymd_to_scalar(yr, mo, day) - 1L) % 7L);
  17. #endif
  18. }
  19.  
  20. /*
  21. .I 50 1
  22. **  Return the week of the year (1 - 52, 0 - 52 if ISO)
  23. .D 51 1
  24. .I 75 9
  25.       char *days[] =
  26. #if (!ISO)
  27.             {"Sunday", "Monday", "Tuesday", "Wednesday",
  28.              "Thursday", "Friday", "Saturday"};
  29. #else
  30.             {"Monday", "Tuesday", "Wednesday", "Thursday",
  31.              "Friday", "Saturday", "Sunday"};
  32. #endif
  33.  
  34. .D 76 1
  35. .I 88 5
  36.       if (!valiDate(year, month, day))
  37.             printf("%d/%d/%d is invalid!\n", month, day, year);
  38.       else  printf("%d/%d/%d is a %s, day #%d in week %d\n", month, day, year,
  39.                   days[dow(year, month, day)], daynum(year, month, day),
  40.                   weeknum(year, month, day));
  41. .D 89 2
  42.