刚开始写算周几

本文介绍了一个使用C++实现的日期星期计算器,通过输入年、月、日,程序能够判断并输出该日期对应的星期几。程序考虑了闰年和平年的不同情况,确保了计算的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<iostream>
void main()
{
	int a,b,c,i=0;
	do
	{
		std::cout<<"请输入年份(2008~):";
		std::cin>>a;
	}
	while(a<2008);
	do
	{
		std::cout<<"请输入年份(1~12):";
		std::cin>>b;
	}
	while(b<1 || b>12);
	if(a%4==0)
	{
		if(b==1 ||b==3 ||b==5 ||b==7 ||b==8 ||b==10 ||b==12)
		{
			do
			{
				std::cout<<"请输入日期(1~31):";
				std::cin>>c;
			}
			while(c<1 ||c>31);
		}
		else if(b==2)
		{
			do
			{
				std::cout<<"请输入日期(1~29):";
				std::cin>>c;
			}
			while(c<1 ||c>29);
		}
		else
		{
			do
			{
				std::cout<<"请输入日期(1~30):";
				std::cin>>c;
			}
			while(c<1 ||c>30);
		}
	}
	else
	{
		if(b==1 ||b==3 ||b==5 ||b==7 ||b==8 ||b==10 ||b==12)
		{
			do
			{
				std::cout<<"请输入日期(1~31):";
				std::cin>>c;
			}
			while(c<1 ||c>31);
		}
		else if(b==2)
		{
			do
			{
				std::cout<<"请输入日期(1~28):";
				std::cin>>c;
			}
			while(c<1 ||c>28);
		}
		else
		{
			do
			{
				std::cout<<"请输入日期(1~30):";
				std::cin>>c;
			}
			while(c<1 ||c>30);
		}
	}
	switch (b)
	{
		case 12:i+=30;
		case 11:i+=31;
		case 10:i+=30;
		case 9:i+=31;
		case 8:i+=31;
		case 7:i+=30;
		case 6:i+=31;
		case 5:i+=30;
		case 4:i+=31;
		case 3:(a%4==0?i+=29:i+=28);
		case 2:i+=31;
		case 1:i+=0;
	}
	int n=0;
	if(a%4==0)
		n=((a-2008)*365+(a-2008)/4+i+c)%7;
	else
		n=((a-2008)*365+(a-2008)/4+i+c+1)%7;
	switch(n)
	{
		case 0:std::cout<<a<<"年"<<b<<"月"<<c<<"日这天是周一";break;
		case 1:std::cout<<a<<"年"<<b<<"月"<<c<<"日这天是周二";break;
		case 2:std::cout<<a<<"年"<<b<<"月"<<c<<"日这天是周三";break;
		case 3:std::cout<<a<<"年"<<b<<"月"<<c<<"日这天是周四";break;
		case 4:std::cout<<a<<"年"<<b<<"月"<<c<<"日这天是周五";break;
		case 5:std::cout<<a<<"年"<<b<<"月"<<c<<"日这天是周六";break;
		case 6:std::cout<<a<<"年"<<b<<"月"<<c<<"日这天是周日";break;
	}
	std::cout<<std::endl;
	system("pause");
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值