大家好,我是练习编程时长两年半的个人练习生昆工第一ikun,昨天因为在写Thoughtworkers的2018年笔试题,所以没有更新,今天就先把笔试题中的一个函数分享出来,该函数可以用于输入年月日求出该天是星期几。


        我们知道1900年1月1日是周一,所以我们计算出输入的那天距离1900年1月1日的天数,我们就可以用算法求出该天是星期几。

 weekday = ((days-1)%7+1)%7;

先计算出今年是从1900 1 1开始的第几天days,比如1900 1 2, days==2;然后days%7是除去了很多个星期后距离周一(1900 1 1为周一)的距离,days%7+1,后面这个1是周一的意思;然后再%7,这是通解。

#include <stdio.h>int week(int y, int m, int d);
int main(int argc, char *argv[])
{int weekday;weekday = week(2022, 8, 12);printf("该天是星期%d\n", weekday);return 0;
} int week(int y, int m, int d)
{int i  = 0, days, ms, sumyd = 0, summd = 0, x, day;for(i = 1900; i < y; i++)                             {if(i%4 == 0 && i%100 != 0 || i%400 == 0) //判断平闰年{day = 366; }else{day = 365;}sumyd += day;     //得出输入的年份距1900年的天数}if(y%4 == 0 && y%100 != 0 || y%400 == 0)                    {x = 29;}else{x = 28;}while(m){switch(m){case 1:ms = 31;break;case 3:ms = 31;break;case 4:ms = 30;break;case 5:ms = 31;break;case 6:ms = 30;break;case 7:ms = 31;break;case 8:ms = 31;break;case 9:ms = 30;break;case 10:ms = 31;break;case 11:ms = 30;break;case 12:ms = 31;break;}summd += ms;m--;     }summd += x;            //得出输入该天距离1月1日的天数days = summd + sumyd + d;        //相加得出该天距离1900-1-1的天数return (days%7+1)%7;     //计算返回该天是星期几  }

我们输入今天的日期2022-8-12,可以得出今天是星期五

输入年月日得出该天是星期几(C语言)相关推荐

  1. 输入年月日 输出该日期是星期几。javascript_快速提升拼音输入法的几个技巧 高手都会用!...

    由于五笔输入法的难度性,拼音输入法已经成为了主流,可是你知道吗?拼音输入法中还有一些小技巧: 注意:这里所说的拼音输入法包含:微软拼音.搜狗拼音.百度拼音.QQ拼音等,本文示范使用微软拼音(因为实在不 ...

  2. 用JAVA实现输入年月日,输出这是一年的第几天,是星期几

    用JAVA实现输入年月日,判断这是一年中的第几天.星期几(从1990年1-1日是星期一开始算) 在这里插入代码片 ```static int outDay(int year,int mon, int ...

  3. C语言输入年月日判断距今,C语言课程设计万年历打印.doc

    . . word完美格式 温馨提示 程序语言:C.C++.C#.Python(红色字体 表示本课设使用的程序设计语言) 图形功能选项:Win32控制台程序(黑框.文本界面).Win32程序.MFC.W ...

  4. c语言编程输入年月日判断是否合法,C语言程序设计:输入年月日判断这是这一年中的第几天...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 输入年月日 并判断这是这一年中的第几天?? #include typedef struct _DATE { int year; int month; in ...

  5. Python中列表实现:输入年月日,输出本年的第?天

    题目描述: 1.输入年月日,计算出它是本年的第几天 年月日格式:YYYY-MM-DD 2.列表实现 代码块: time = input('请输入日期 YYYY-MM-DD:')date = time. ...

  6. java这一年第几天_java 输入年月日,计算该日是这一年的第几天

    1.输入年月日,计算该日是这一年的第几天importjava.util.Scanner;publicclassshiyan2{publicstaticvoidmain(String[]args){in ...

  7. 输入年月日实现计算这是一年的第几天

    #include<stdio.h> /*通过输入年月日,计算这一天是这一年的第几天,* 支持任意输入,不正确输入均有提示*/ int main() {int year,month,day, ...

  8. Java:输入年月日,输出这一天是这一年的第几天。

    public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println( ...

  9. 输入年月日判断当天是该年的第几天

    今天就偶然想到一个特别妙的算法 用switch-case但不使用break跳出循环也就意味着找到当前条件后仍然执行下面的条件的代码 比如说现在我的month是3 首先进入了case3的情况待此条件内的 ...

最新文章

  1. jQuery on()方法绑定动态元素的点击事件无效
  2. Vs2013 头文件注释
  3. Swift--字符串和字符(一)
  4. golang log日志
  5. JS与Asp.Net的传值
  6. 工作10年才懂的道理,早知道职位比现在高两级
  7. 专注SilverLight
  8. Java ArrayList 数组之间相互转换
  9. Spark 概念学习系列之从spark架构中透视job(十六)
  10. 上传文件与下载文件不一致的怪事
  11. Cronbach’s α?KMO系数?因子载荷?史上最易懂的问卷信效度分析教程!!!(SPSS和AMOS)
  12. 开发power apps canvas时用到的一些公式和小技能
  13. SylixOS -- 双网卡冗余备份设计方案
  14. 身份证验证程序(一)
  15. UnixBench测试服务器性能
  16. python写的百度贴吧邮箱采集(带界面)
  17. java indexeddb_indexedDB 基本使用
  18. 初学编程时需要了解的10件事情
  19. 极限等价无穷小量替换笔记
  20. ZOJ ~ 3469 ~ Food Delivery (区间DP)

热门文章

  1. logo样机图如何实时预览?
  2. linux0.12-8-2-asm.s
  3. 工信部信软司副司长王建伟-《工业互联网平台发展与展望》
  4. java实现当前时间往前推N小时
  5. 未来五年的职业规划模板
  6. 【专栏独家】详解微信朋友圈广告:会不会成为腾讯的新印钞机?
  7. 玩转人工智能(4)算法的灵魂之数据结构Python实战
  8. Attention?Attention!
  9. 【无监督学习】遗传算法Genetic Algorithm(含代码实现)
  10. ajax手机号,ajax手机号码归属地查询(示例代码)