大家好,欢迎来到IT知识分享网。
先出个小题目考考大家,给你任意一个日期,计算出当天对应的是周几。
想想看怎么实现?不要挠头,慢慢来哈。
先看一下上面提到的神奇代码实现的效果
验证一下
什么还要历史上的今天,来来来,继续
验证下
具体怎么实现的呢
不多废话直接上代码
#include <stdio.h>
#include <stdlib.h>
unsigned char week_check(int year,int month ,int day);
unsigned char* Tweek[7] = {“星期天”,”星期一”,”星期二”,”星期三”,”星期四”,”星期五”,”星期六”};
int main(int argc, char *argv[]) {
int year=0;
int mon=0;
int day=0;
unsigned char weekday=0;
while(1)
{
printf(“请输入日期,如2021年3月1日请输入2021-3-1 \n\r”);
scanf(“%d-%d-%d”,&year,&mon,&day);
weekday = week_check(year,mon,day);
printf(“%d年%d月%d日是%s! \n\r\n\r”, year,mon,day, Tweek[weekday]);
}
return 0;
}
unsigned char week_check(int year,int month ,int day)
{
int week=0x00;
if (month == 1 || month == 2)
{
year = year – 1;
month = month + 12;
}
week = (day + 2 * month + 3 * (month + 1) / 5 + year + year / 4 – year / 100 + year / 400 + 1) % 7;
return week;
}
怎么样是不是没有想象的那么复杂,只有简简单单的几行代码,很神奇吧。
不知道是哪位大神脑洞出奇想到了这个算法,你看懂了吗?可以交流下哈
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/69352.html