Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include<ctype.h>
- void whichDay(int );
- int ex_yToNum(int);
- int ex_y2ToNum(int);
- int curr_yToNum(int ,int,int);
- int isleap(int);
- int main()
- {
- int date,month,year;
- //input
- printf("enter date: ");
- scanf("%d",&date);
- printf("enter month: ");
- scanf("%d",&month);
- printf("enter year: ");
- scanf("%d",&year);
- /* if((isdigit(date)||isdigit(month)||isdigit(year))) //check if non integer value is given as input
- {
- printf("please enter only integer values");
- exit(0);
- }*/
- int exyear,exyear2;
- exyear=year%400;
- exyear2=exyear%100;
- exyear=exyear-exyear2;
- exyear2=exyear2-1;
- int num1,num2,num3;
- num1= ex_yToNum(exyear);
- num2= ex_y2ToNum(exyear2);
- num3= curr_yToNum(date,month,year);
- int sum=0;
- sum=num1+num2+num3;
- if(sum>=7)
- sum=sum-7;
- whichDay(sum);
- return 0;
- }
- int ex_yToNum(int exy)
- {
- if(exy==400)
- return 0;
- else if (exy==300)
- return 1;
- else if (exy==200)
- return 3;
- else
- return 5;
- }
- int ex_y2ToNum(int exy2)
- {
- int leap,ord,temp;
- leap= exy2/4;
- ord= exy2-leap;
- temp=leap*2+ord;
- return (temp%7);
- }
- int isleap(int y)
- {
- if(y%400==0)
- return 1;
- else if(y%100==0)
- return 0;
- else if(y%4==0)
- return 1;
- else
- return 0;
- }
- int curr_yToNum(date,month,year)
- {
- const int monthdays[12]={31,28,31,30,31,30,31,31,30,31,30,31};
- int i,sumdays=0;
- for(i=0;i<month-1;i++)
- sumdays+=monthdays[i];
- sumdays+=date;
- sumdays+=isleap(year);
- return sumdays%7;
- }
- void whichDay(int d)
- {
- switch(d)
- {
- case 0 :
- printf("sunday");
- break;
- case 1:
- printf("monday");
- break;
- case 2:
- printf("tuesday");
- break;
- case 3:
- printf("wednesday");
- break;
- case 4:
- printf("thursday");
- break;
- case 5:
- printf("friday");
- break;
- case 6:
- printf("saturday");
- break;
- default: printf("some error");
- }
- }
Add Comment
Please, Sign In to add comment