rohithdsouza

what day given date

May 20th, 2020
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.19 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include<ctype.h>
  4.  
  5. void whichDay(int );
  6. int ex_yToNum(int);
  7. int ex_y2ToNum(int);
  8. int curr_yToNum(int ,int,int);
  9. int isleap(int);
  10.  
  11. int main()
  12. {
  13.     int date,month,year;
  14.     //input
  15.     printf("enter date: ");
  16.     scanf("%d",&date);
  17.     printf("enter month: ");
  18.     scanf("%d",&month);
  19.     printf("enter year: ");
  20.     scanf("%d",&year);
  21.  
  22.  
  23.    /* if((isdigit(date)||isdigit(month)||isdigit(year))) //check if non integer value is given as input
  24.     {
  25.         printf("please enter only integer values");
  26.         exit(0);
  27.     }*/
  28.  
  29.     int exyear,exyear2;
  30.     exyear=year%400;
  31.     exyear2=exyear%100;
  32.     exyear=exyear-exyear2;
  33.     exyear2=exyear2-1;
  34.  
  35.     int num1,num2,num3;
  36.     num1= ex_yToNum(exyear);
  37.     num2= ex_y2ToNum(exyear2);
  38.     num3= curr_yToNum(date,month,year);
  39.     int sum=0;
  40.     sum=num1+num2+num3;
  41.     if(sum>=7)
  42.         sum=sum-7;
  43.     whichDay(sum);
  44.  
  45.  
  46.     return 0;
  47. }
  48.  
  49. int ex_yToNum(int exy)
  50. {
  51.  
  52.     if(exy==400)
  53.         return 0;
  54.     else if (exy==300)
  55.         return 1;
  56.     else if (exy==200)
  57.         return 3;
  58.     else
  59.         return 5;
  60. }
  61.  
  62. int ex_y2ToNum(int exy2)
  63. {
  64.  
  65.     int leap,ord,temp;
  66.     leap= exy2/4;
  67.     ord= exy2-leap;
  68.     temp=leap*2+ord;
  69.  
  70.     return (temp%7);
  71.  
  72. }
  73.  
  74. int isleap(int y)
  75. {
  76.  
  77.     if(y%400==0)
  78.         return 1;
  79.     else if(y%100==0)
  80.         return 0;
  81.     else if(y%4==0)
  82.         return 1;
  83.     else
  84.         return 0;
  85. }
  86.  
  87. int curr_yToNum(date,month,year)
  88. {
  89.  
  90.     const int monthdays[12]={31,28,31,30,31,30,31,31,30,31,30,31};
  91.     int i,sumdays=0;
  92.     for(i=0;i<month-1;i++)
  93.         sumdays+=monthdays[i];
  94.     sumdays+=date;
  95.     sumdays+=isleap(year);
  96.     return sumdays%7;
  97.  
  98. }
  99. void whichDay(int d)
  100. {
  101.  
  102.     switch(d)
  103.     {
  104.  
  105.     case 0 :
  106.         printf("sunday");
  107.         break;
  108.     case 1:
  109.         printf("monday");
  110.         break;
  111.     case 2:
  112.         printf("tuesday");
  113.         break;
  114.     case 3:
  115.         printf("wednesday");
  116.         break;
  117.     case 4:
  118.         printf("thursday");
  119.         break;
  120.     case 5:
  121.         printf("friday");
  122.         break;
  123.     case 6:
  124.         printf("saturday");
  125.         break;
  126.     default: printf("some error");
  127.     }
  128. }
Add Comment
Please, Sign In to add comment