#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;}