215k views
4 votes
Write a program that accepts a date in the form month/day/year and outputs whether or not the date is valid. For example, 5/24/1962 is valid, but 9/31/2000 is not. (September has only 30 days.)

User Xus
by
4.5k points

1 Answer

2 votes

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);

}

User Angelo Immediata
by
4.2k points