Answer:
Here is the code.
Step-by-step explanation:
#include <stdlib.h>
#include <stdio.h>
int check_month(int month);
int check_date(int year, int month, int day);
void display_date(int year, int month, int day);
int check_year(int year);
int main (void)
{
int year, month, day;
int valid;
printf("\t\t\t\tEnter Date \\");
printf("\\year (yyyy): ");
scanf("%d",&year);
printf("month: ");
scanf("%d",&month);
printf("day: ");
scanf("%d", &day);
valid = check_month(month);
if (valid)
{
valid = check_date(year, month, day);
}
if (valid)
{
display_date(year, month, day);
printf("is a valid date. \\");
}
else
{
display_date(year, month, day);
printf("is a illegal date. \\");
}
system ("pause");
return 0;
}
int check_month(int month)
{
int flag;
if (month>=1 && month<=12)
flag = 1;
else
flag = 0;
return flag;
}
int check_date(int year, int month, int day)
{
int valid;
int leep_year;
switch (month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if (day>=1 && day<=31)
valid = 1;
else
valid = 0;
break;
case 2:
leep_year = check_year(year);
if (leep_year)
{ if (day>=1 && day<=29)
valid = 1;
else
valid = 0;
}
else
{ if (day>=1 && day<=28)
valid = 1;
else
valid = 0;
}
break;
case 4:
case 6:
case 9:
case 11:
if (day>=1 && day<=30)
valid = 1;
else
valid = 0;
break;
}
return valid;
}
int check_year(int year)
{
int leep_year;
if (year%4==0)
{
if (year%100==0)
{
if (year%400==0)
leep_year = 1; // 1600, 2000
else
leep_year = 0; // 1700, 1800, 1900, 2100
}
else
{
leep_year = 1; // 2004, 1996
}
}
else
{
leep_year = 0; // 2003, 2011
}
return leep_year;
}
void display_date(int year, int month, int day)
{
if (month == 1)
printf("January");
else if (month == 2)
printf("February");
else if (month == 3)
printf("March");
else if (month == 4)
printf("April");
else if (month == 5)
printf("May");
else if (month == 6)
printf("June");
else if (month == 7)
printf("July");
else if (month == 8)
printf("August");
else if (month == 9)
printf("September");
else if (month == 10)
printf("October");
else if (month == 11)
printf("November");
else if (month == 12)
printf("December");
else
printf("The Month enter is not valid.\\");
printf(" %d, %d ",day,year);
}