Microcontroller Date Validation

int happy(int year, int month, int day){    if (month > 12 || month < 1)    {        return -1;    }    else    {        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)//Leap year        {            if (month == 2)            {                if (day > 29 || day < 1) return -2;                else return 1;            }        }        if (month == 4 || month == 6 || month == 9 || month == 11)        {            if (day < 1 || day>30) return -2;            else return 1;        }        else if (month != 2)        {            if (day < 1 || day>31) return -2;            else return 1;        }        else        {            if (day < 1 || day>28) return -2;            else return 1;        }    }    return 1;}
#include <stdio.h>
int main(void) {  int year;  int month;  int day;
  //Input year, month, and day  scanf("%d%d%d",&year,&month,&day);
  //Check if the month is valid  if (month >= 1 && month <= 12)   {    if ((month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month ==12)&& day <= 31)     {      printf ("YES");    }     else if ((month == 4 || month == 6 || month == 9 || month == 11) && day <= 30)     {      //Check for months with 30 days      printf("YES");    }     else if (month == 2 && day <= 29)    {      //Check February for leap year days      if ((year % 100 != 0 && year % 4 == 0) || year % 400 == 0)       {        printf("YES");      }       else if (day <= 28)      {        printf("YES");      }       else       {        printf("NO");      }    }     else     {      printf("NO");    }  }   else   {    printf("NO");  }  while(1);}

Leave a Comment