home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 14
/
CD_ASCQ_14_0694.iso
/
maj
/
653
/
calsupp.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-04-03
|
1KB
|
66 lines
/* calsupp.c -- public domain by Ray McVay */
/* This module provides three handy date related functions:
** dow() - Returns the day of the week for a given date
** IsLeap() - Returns 1 if a year is a leap year
** GetToday() - Returns today's date from the operating system
*/
#include <time.h>
/*
** Returns an integer that represents the day of the week for
** the date passed as parameters.
**
** day: day of month
** mon: month (1-12)
** yr: year
**
** returns 0-6 where 0 == sunday
*/
int dow(int day, int mon, int yr)
{
int dow;
if (mon <= 2)
{
mon += 12;
yr -= 1;
}
dow = (day + mon * 2 + ((mon + 1) * 6) / 10 +
yr + yr / 4 - yr / 100 + yr / 400 + 2);
dow = dow % 7;
return ((dow ? dow : 7) - 1);
}
/*
** Returns 1 if yr is a leap year, 0 if it is not
*/
int IsLeap(int yr)
{
if (yr % 400 == 0) return 1;
if (yr % 100 == 0) return 0;
if (yr % 4 == 0) return 1;
else return 0;
}
/*
** Returns the current day, month and year in the referenced variables
*/
void GetToday(int *day, int *mon, int *yr)
{
struct tm today;
time_t ctime;
time(&ctime);
today = *localtime(&ctime);
*day = today.tm_mday;
*mon = today.tm_mon + 1;
*yr = today.tm_year + 1900;
}