200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 关于某个日期快速计算是星期几(基姆拉尔森公式)

关于某个日期快速计算是星期几(基姆拉尔森公式)

时间:2020-12-25 06:49:31

相关推荐

关于某个日期快速计算是星期几(基姆拉尔森公式)

前言

如果有这样的问题:如果y年m月d日是星期k,那么请问y1年m1月d1日是星期几?

思路

首先如果询问的日期都在1970年之后的话,我们可以使用Excel直接计算。Java的Calendar类,使用和Excel非常类似,略直接模拟,注意判断闰年,年份、月份、天数的变化处理基姆拉尔森公式:这个公式可以直接计算出那个日期是星期几,但请注意!这类问题如果假设和真实情况不符的时候要记得换上偏移量,比如问题假设某个日期是星期一,而真实情况这天是星期二,那么我们计算出来的星期几也要-1,但请保证再1~7的环中。

Code:

#include <bits/stdc++.h>using namespace std;//基姆拉尔森公式int calc_week (int y, int m, int d) {if (m == 1 || m == 2) {//month 13,14,3,...12y--;m += 12;}int tag = (d + 2*m + 3*(m+1)/5 + y + y/400 - y/100) % 7;return tag + 1;}int main(int argc, char *argv[]) {int y,m,d;while (cin >> y >> m >> d) {printf("Today : %04d %02d %02d\n", y, m, d);printf("Week : %d\n", calc_week(y, m, d));}return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。