输入年月日得出该天是星期几(C语言)
大家好,我是练习编程时长两年半的个人练习生昆工第一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语言)相关推荐
- 输入年月日 输出该日期是星期几。javascript_快速提升拼音输入法的几个技巧 高手都会用!...
由于五笔输入法的难度性,拼音输入法已经成为了主流,可是你知道吗?拼音输入法中还有一些小技巧: 注意:这里所说的拼音输入法包含:微软拼音.搜狗拼音.百度拼音.QQ拼音等,本文示范使用微软拼音(因为实在不 ...
- 用JAVA实现输入年月日,输出这是一年的第几天,是星期几
用JAVA实现输入年月日,判断这是一年中的第几天.星期几(从1990年1-1日是星期一开始算) 在这里插入代码片 ```static int outDay(int year,int mon, int ...
- C语言输入年月日判断距今,C语言课程设计万年历打印.doc
. . word完美格式 温馨提示 程序语言:C.C++.C#.Python(红色字体 表示本课设使用的程序设计语言) 图形功能选项:Win32控制台程序(黑框.文本界面).Win32程序.MFC.W ...
- c语言编程输入年月日判断是否合法,C语言程序设计:输入年月日判断这是这一年中的第几天...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 输入年月日 并判断这是这一年中的第几天?? #include typedef struct _DATE { int year; int month; in ...
- Python中列表实现:输入年月日,输出本年的第?天
题目描述: 1.输入年月日,计算出它是本年的第几天 年月日格式:YYYY-MM-DD 2.列表实现 代码块: time = input('请输入日期 YYYY-MM-DD:')date = time. ...
- java这一年第几天_java 输入年月日,计算该日是这一年的第几天
1.输入年月日,计算该日是这一年的第几天importjava.util.Scanner;publicclassshiyan2{publicstaticvoidmain(String[]args){in ...
- 输入年月日实现计算这是一年的第几天
#include<stdio.h> /*通过输入年月日,计算这一天是这一年的第几天,* 支持任意输入,不正确输入均有提示*/ int main() {int year,month,day, ...
- Java:输入年月日,输出这一天是这一年的第几天。
public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println( ...
- 输入年月日判断当天是该年的第几天
今天就偶然想到一个特别妙的算法 用switch-case但不使用break跳出循环也就意味着找到当前条件后仍然执行下面的条件的代码 比如说现在我的month是3 首先进入了case3的情况待此条件内的 ...
最新文章
- jQuery on()方法绑定动态元素的点击事件无效
- Vs2013 头文件注释
- Swift--字符串和字符(一)
- golang log日志
- JS与Asp.Net的传值
- 工作10年才懂的道理,早知道职位比现在高两级
- 专注SilverLight
- Java ArrayList 数组之间相互转换
- Spark 概念学习系列之从spark架构中透视job(十六)
- 上传文件与下载文件不一致的怪事
- Cronbach’s α?KMO系数?因子载荷?史上最易懂的问卷信效度分析教程!!!(SPSS和AMOS)
- 开发power apps canvas时用到的一些公式和小技能
- SylixOS -- 双网卡冗余备份设计方案
- 身份证验证程序(一)
- UnixBench测试服务器性能
- python写的百度贴吧邮箱采集(带界面)
- java indexeddb_indexedDB 基本使用
- 初学编程时需要了解的10件事情
- 极限等价无穷小量替换笔记
- ZOJ ~ 3469 ~ Food Delivery (区间DP)