The program below determines if date if valid. It works for all dates without a zero in the number. What am I missing?
Note: Don't worry about leap year. I have not got to that yet, but have a
Code:
#include<stdio.h>
int valid_date(int day,int month, int year)
{
if ((month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
&& (day >= 1 || day <= 31) && (year >= 1900 ))
return 1;
else if ((month == 4 || month == 6 || month == 9 || month == 11)
&& (day >= 1 || day <= 30)&& (year >= 1900))
return 1;
else
{
return 0;
}
}
int main()
{
int day, month, year;
printf("\nEnter the Day: ");
scanf("%2d",&day);
printf("\nEnter the Month: ");
scanf("%2d",&month);
printf("\nEnter the Year: ");
scanf("%4d",&year);
if(valid_date(day, month, year))
{
printf("\nThis Date is Valid\n");
}
else
{
printf("\nInvalid date Error: This date doesn't exists in the calander. \n\n ");
}
system("PAUSE");
return 0;
}