那胖手在星球表面缓慢移动 2021-03-06 10:51 采纳率: 33.3%
浏览 31

想知道这篇代码的理解

//蒜头君的生日
#include<iostream>
using namespace std;

int whatday(int y, int m, int d)
{
	int ans;
	
	for(int i=1; i<y; i++)
	{
		if(( i % 100 != 0 && i % 4 == 0 ) || i % 400 == 0 )
		{
			ans += 366 % 7;
			ans %= 7;
		}
		else
		{
			ans += 365 % 7;
			ans %= 7;
		}
	}
	
	for(int i=1; i<m; i++)
	{
		if( i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12 )
		{
			ans += 31 % 7;
			ans %= 7;
		}
		else if( i == 4 || i == 6 || i == 9 || i == 11 )
		{
			ans += 30 % 7;
			ans %= 7;
		}
		else if( ( y % 100 != 0 && y % 4 == 0 ) || i % 400 == 0 )
		{
			ans += 29 % 7;
			ans %= 7;
		}
		else
		{
			ans += 28 % 7;
			ans %= 7;
		}
	}
	
	ans += (d-1) % 7;
	ans %= 7;
	
	return ans;
}

string weekday[7] = { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" };

int main()
{
	int y, m, d;
	cin >> y >> m >> d;
	
	cout << weekday[whatday(y, m, d)] << endl;
	
	return 0;
}
  • 写回答

2条回答 默认 最新

  • SoftwareTeacher 《编程之美》作者 2021-03-06 11:21
    关注

    >想知道这篇代码的理解

    请具体说你懂了哪些, 哪些不懂。 这样大家才能帮你。 

    评论

报告相同问题?

悬赏问题

  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿