优秀的编程知识分享平台

网站首页 > 技术文章 正文

分享一段神奇的小代码:那天是周几啊

nanyue 2024-09-27 12:48:12 技术文章 5 ℃

先出个小题目考考大家,给你任意一个日期,计算出当天对应的是周几。

想想看怎么实现?不要挠头,慢慢来哈。

先看一下上面提到的神奇代码实现的效果

验证一下

什么还要历史上的今天,来来来,继续

验证下

具体怎么实现的呢

不多废话直接上代码

#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;

}

怎么样是不是没有想象的那么复杂,只有简简单单的几行代码,很神奇吧。

不知道是哪位大神脑洞出奇想到了这个算法,你看懂了吗?可以交流下哈

Tags:

最近发表
标签列表