Advertisement
NAbdulla

Day name of a given date

Jun 14th, 2015
263
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.10 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. int months[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  4. int leapMonths[] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  5.  
  6. int isLeapYear(int year)
  7. {
  8.     if((year%400 == 0) || (year%4 == 0 && year%100 != 0))return 1;
  9.     else return 0;
  10. }
  11.  
  12. int main()
  13. {
  14.     int d, m, y, days, day1st, i, j;
  15.     while(scanf("%d %d %d", &d, &m, &y) == 3){
  16.         y--;
  17.         day1st = (1 + 5*(y%4) + 4*(y%100) + 6*(y%400))%7;
  18.         days = day1st;
  19.  
  20.         y++;
  21.         if(isLeapYear(y)){
  22.             for(i = 0; i < m-1; i++){
  23.                 days += leapMonths[i];
  24.             }
  25.             days += d;
  26.         }
  27.         else{
  28.             for(i = 0; i < m-1; i++){
  29.                 days += months[i];
  30.             }
  31.             days += d;
  32.         }
  33.         day1st = (days-1)%7;
  34.         switch(day1st){
  35.             case 0:
  36.                 printf("Sunday\n");
  37.                 break;
  38.             case 1:
  39.                 printf("Monday\n");
  40.                 break;
  41.             case 2:
  42.                 printf("Tuesday\n");
  43.                 break;
  44.             case 3:
  45.                 printf("Wednesday\n");
  46.                 break;
  47.             case 4:
  48.                 printf("Thursday\n");
  49.                 break;
  50.             case 5:
  51.                 printf("Friday\n");
  52.                 break;
  53.             case 6:
  54.                 printf("Saturday\n");
  55.                 break;
  56.         }
  57.     }
  58.  
  59.     return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement