当前位置:K88软件开发文章中心编程语言C/C++C/C++01 → 文章内容

计算任意一个日期是星期几

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-4 7:48:48

-->

//公式 w = (int)(c/4) – 2*c + y + (int)(y/4)+ (int)(13*(m+1)/5) + d – 1;

//可以获取当前日期,并计算今天是星期几.

#include <stdio.h>

#include <stdlib.h>

#include ?<math.h>

#include <time.h>

#include <string.h>

int whatday(int,int,int);

int ?Negativenum(int );

int today();

?

int main()

{

int year,mon,day,i;

printf(“1)计算当日日期\n2)计算任意日期是星期几\n======================================\n请选择:”);

scanf(“%d”,&i);

switch(i)

{

case 1:today(); ?break;

case 2: printf(“输入日期:如:1994 7 19\n”); scanf(“%d%d%d”,&year,&mon,&day);

whatday(year,mon,day); break;

default : printf(“输入有误!\n”);

}

system(“PAUSE”);

return 0;

}

?

int whatday(int year,int mon,int day)

{

int y,d,m,c,w;

m=mon;

d=day;

c=year/100; ? //取年份的前两位数

y=year%100; ? //取年份的后两位数

if(m>=1&&m<=2)#xa0;#xa0; //1,2月份时,取前一年

year-=1;

w = (int)(c/4) – 2*c + y + (int)(y/4)+ (int)(13*(m+1)/5) + d – 1;

w=w%7;

Negativenum(w);

switch(w)

{

case 0:printf(“that day is sunday!\n”); break;

case 1:printf(“that day is Monday!\n”);break;

case 2:printf(“that day is wendesday!\n”);break;

case 3:printf(“that day is thursday!\n”); break;

case 4:printf(“that day is friday!\n”); break;

case 5:printf(“that day is tuseday!\n”); break;

case 6:printf(“that day is sadurday!\n”);break;

default:printf(“cout error!\n”);

?

}

}

? ? int Negativenum(int w) ?//w可能是负数,转换成正数

{

if(w < 0)

w += 7;

return w;

}

?

int today()

{

int year;

int mon;

int day;

time_t t=time(NULL);

struct tm* today =localtime(&t);

year=today->tm_year +1900;

mon=today->tm_mon+1;

day=today->tm_mday;

printf(“today is:%d年%d月%d日\n”,year,mon,day);

whatday(year,mon,day);

}

?

?

?

?

?


计算任意一个日期是星期几