All pastes #247962 Raw Edit

7 moi

public c v1 · immutable
#247962 ·published 2006-11-14 00:52 UTC
rendered paste body
#include <stdio.h>main()//----------------------------------------------------------// Function to validate date format// returns "0" if format is invalid,// otherwise returns "1"int isValidDate(int day, int month, int year){ if ((day < 1) || (day > 31))   return 0; if ((month < 1) || (month > 12))   return 0; if ((year < 1901) || (year > 2099))   return 0; return 1;}//----------------------------------------------------------// Function to calculate the day of week and define// day_of_week accordingly (0 = Monday, 6 = Sunday)int dayOfWeek(int day, int month, int year){ // Calculate passed days of current year: int daysPassed = 0; int monthsCounted = 1; while (monthsCounted < month)    {   if ((monthsCounted == 1) ||       (monthsCounted == 3) ||       (monthsCounted == 5) ||       (monthsCounted == 7) ||       (monthsCounted == 8) ||       (monthsCounted == 10) ||       (monthsCounted == 12))       {         daysPassed = daysPassed + 31;       }   if ((monthsCounted == 4) ||       (monthsCounted == 6) ||       (monthsCounted == 9) ||       (monthsCounted == 11))       {         daysPassed = daysPassed + 30;       }   if (monthsCounted == 2)      {        daysPassed = daysPassed + 28;      }   monthsCounted++; } daysPassed = daysPassed + day; // add days for passed years daysPassed = daysPassed + ((year-1901)*365); // consider leap years int leap years = (year - 1901) /  4; daysPassed = daysPassed + leap years; // if current year is a leap year, add one day to passed days if ((year % 4) == 0) daysPassed++; return (daysPassed % 7);}//----------------------------------------------------------// Function to print weekday in English depending// on day_of_weekvoid printWeekDay(int day_of_week){ switch (day_of_week) {   case 0 : printf("Monday\n");            break;   case 1 : printf("Tuesday\n");            break;   case 2 : printf("Wednesday\n");            break;   case 3 : printf("Thursday\n");            break;   case 4 : printf("Friday\n");            break;   case 5 : printf("Saturday\n");            break;   case 6 : printf("Sunday\n");            break;  }}//----------------------------------------------------------//Main program//// Gets input date and calls previously defined// functions to calculate and output weekday ov given date// Will return "0" if input date is invalid,// otherwise will output weekday in english and return "1"int main (){ int day = 0, month = 0, year = 0; printf("Enter DD/MM/YYYY\n"); scanf("%02d/%02d/%04d", &day, &month, &year); if (isValidDate(day, month, year) == 0) {  printf("Invalid date: %02d/%02d/%04d", day, month, year);  return 1; } int day_of_week = dayOfWeek(day, month, year); printWeekDay(day_of_week); return 0;}