输入年月日,计算星期几 (数学推理)

自制程序:输入年月日,以空格隔开,输出当天的星期数。时间范围为公元2000-2600年
代码如下:

#include <iostream>
using namespace std;
int main()
{
    cout<<"输入年月日,以空格隔开(范围公元2000年到2600年)"<<endl;
	int y, m, d;
	while (cin >> y >> m >> d)//计算2000年到2600年间星期几
	{
		if (2000 <= y && y <= 2600 && 1 <= m && m <= 12 && 1 <= d && d <= 31)
		{
			int xq = 6;//从2000为基准1月1号为星期六
			if (y == 2000)
			{
				for (int j = m; j > 1; j--)
				{
					switch (j - 1)
					{
					case 1: case 3: case 5: case 7: case 8: case 10: case 12: xq = xq + 31; break;
					case 4: case 6: case 9: case 11: xq = xq + 30; break;
					case 2: xq = xq + 29; break;
					}
				}
			}
			else
			{

				for (int k = y; 2000 < k; k--)
				{
					int j = k - 1;
					if (j % 400 == 0 || j % 4 == 0 && j % 100 != 0)
					{
						xq = xq + 366;
					}
					else
					{
						xq = xq + 365;
					}
				}
				for (int p = m; p > 1; p--)
				{
					switch (p - 1)
					{
					case 1: case 3: case 5: case 7: case 8: case 10: case 12: xq = xq + 31; break;
					case 4: case 6: case 9: case 11: xq = xq + 30; break;
					case 2: xq = xq + 28; break;
					}
				}
				if (y % 400 == 0 || y % 4 == 0 && y % 100 != 0)
				{
					if (m > 2) xq = xq + 1;
				}
			}
			xq = xq + d - 1;
			xq = xq % 7;
			cout<<"星期";
			switch (xq)
			{
			case 1: case 2: case 3: case 4: case 5: case 6: cout << xq << endl; break;
			case 0: cout << 7 << endl; break;
			}
		}
		else cout<<"您输入的年月日不符合规范"<<endl;
	}
}

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用JavaScript来实现输入年月日计算星期几的功能。以下是一个简单的实现方式: ```html <!DOCTYPE html> <html> <head> <title>计算星期几</title> <script type="text/javascript"> function getWeekday() { var year = document.getElementById("year").value; var month = document.getElementById("month").value; var day = document.getElementById("day").value; var date = new Date(year, month - 1, day); var weekday = date.getDay(); var weekdayText = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; document.getElementById("result").innerHTML = "The weekday is " + weekdayText[weekday]; } </script> </head> <body> <h1>输入年月日计算星期几</h1> <form> <label for="year">Year:</label> <input type="number" id="year" name="year" required> <label for="month">Month:</label> <input type="number" id="month" name="month" min="1" max="12" required> <label for="day">Day:</label> <input type="number" id="day" name="day" min="1" max="31" required> <input type="button" value="计算" onclick="getWeekday()"> </form> <div id="result"></div> </body> </html> ``` 用户输入年月日后,点击“计算”按钮,会调用`getWeekday()`函数,该函数会获取用户输入年月日,创建一个Date对象,并使用Date对象的`getDay()`方法获取星期几,最后将结果显示在页面上。 需要注意的是,在JavaScript中,星期天是0,星期一是1,以此类推,因此我们需要定义一个数组`weekdayText`,将0~6对应的星期日~星期六的文本存储起来,最后根据`getDay()`方法返回的值,从数组中取出对应的文本。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值