#include #include #include #include #include #define SECS_IN_DAY 86400 int main(int argc, char *argv[]) { long lToday; int numdays; int iCntr; int iWhatMonth; char cTmp[5]; struct tm *pTimePtr; int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; time(&lToday); pTimePtr = localtime(&lToday); if (argc >= 2) { sprintf(cTmp, "%c%c%c%c", argv[1][0], argv[1][1], argv[1][2], argv[1][3]); pTimePtr->tm_year = atoi(cTmp) - 1900; } iWhatMonth = pTimePtr->tm_mon; if (pTimePtr->tm_year % 4 == 0) days[1]++; pTimePtr->tm_mon = 0; pTimePtr->tm_mday = 1; lToday = mktime(pTimePtr); iCntr = 1; numdays = 0; while (pTimePtr->tm_year == (atoi(cTmp) - 1900)) { if (pTimePtr->tm_wday != 0 && pTimePtr->tm_wday != 6) numdays++; lToday += SECS_IN_DAY; pTimePtr = localtime(&lToday); } printf("Work days in %d are %d\n", atoi(cTmp), numdays); return 0; }