返回日期是星期几


#include <stdio.h>
#include <string.h>

#define true 1
#define false 0


int normalmonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int leapmonth[12]={31,29,31,30,31,30,31,31,30,31,30,31};
const char * week[7]={"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday","Sunday"};

int isLeapYear(int year)
{
	if(year%400==0)
		return true;
	else
	{
		if(year%4==0)
		{
			if(year%100==0)
				return false;
			else
				return true;
		}
		else
			return false;
	}
	return false;
}

int getImonth(char* a)
{
	if(!strcmp(a,"January")) return 0;
	if(!strcmp(a,"February")) return 1;
	if(!strcmp(a,"March")) return 2;
	if(!strcmp(a,"April")) return 3;
	if(!strcmp(a,"May")) return 4;
	if(!strcmp(a,"June")) return 5;
	if(!strcmp(a,"July")) return 6;
	if(!strcmp(a,"August")) return 7;
	if(!strcmp(a,"September")) return 8;
	if(!strcmp(a,"October")) return 9;
	if(!strcmp(a,"November")) return 10;
	if(!strcmp(a,"December")) return 11;
	return -1;
}



int main()
{
	int iday=1;
	char cMonth[100]={'J','a','n','u','a','r','y','\0'};
	int iyear=1;
	int i =0;
	int imonth=-1;
	int *pYear = NULL;
	int weekday = -1;


	scanf("%d %s %d",&iday, cMonth, &iyear);
	weekday = (iyear-1 + iyear/4 - iyear/100 + iyear/400)%7;
	imonth = getImonth(cMonth);
	if(imonth<0) return -1;

	if(isLeapYear(iyear)==true) pYear =  leapmonth;
	else pYear = normalmonth;

	for(i=0;i<imonth;i++)
	{
		weekday = weekday + pYear[i];  
	}

	weekday = (iday-1 + weekday)%7;

	printf("%s", week[weekday]);

	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值