大家好,今天小编关注到一个比较有意思的话题,就是关于计算星期 c语言的问题,于是小编就整理了3个相关计算星期 c语言的解答,让我们一起看看吧。
用c语言编一个程序:根据用户输入的数字(1~7),输出英文的星期名称。怎么做?
思路:定义一个字符串数组,把星期名分别放到该字符数组的1-7位置,再输入一个整型数n,则直接输出该数组n位置的字符串。参考代码:
#include<stdio.h>#include<string.h>int main(){char a[8][20]={34;","monday","tuesday","wednesday","thursday","friday","saturday","sunday"};int n;scanf("%d",&n);puts(a[n]);return 0; } /*输出:7sunday */
如何计算星期几的简单公式?
可以用最著名的是蔡勒(Zeller)公式来计算。
即 w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
公式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数);m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);d:日;[ ]代表取整,即只要整数部分。(C是世纪数减一,y是年份后两位,M是月份,d是日数。1月和2月要按上一年的13月和 14月来算,这时C和y均按上一年取值。)
算出来的W除以7,余数是几就是星期几。如果余数是0,则为星期日。
怎样给定一个日期,就能算出它星期几?怎样算的?
只需要知道三个代码 日期代码+月份代码+年份代码 就可以秒算任意年份任意日期的星期数 方法 1、日期代码指的是日期数,如3月18号,日期代码为18。4月7号,日期代码为7。 2、月份代码(需要小小记忆) 五月 是 0 八月 是 1 二月 三月 十一月 是 2 六月 是 3 九月 十二月 是4 四月 七月 是5 一月 十月 是 6 如果遇到闰年 则二月代码变为1,一月代码变为5,其它不变。即,非闰年的月份代码为622503 514624,闰年的月份代码为512503 514624。 3、年份代码 举个例子 2010年的代码,我们用尾数10除以4(忽略余数)再加上10得到数字12,再用12除以7,得到的余数5就是2010年的代码。 也就是说,心算出2000到2099任意年份的代码,只需将其后两位数X除以4(忽略余数),然后与X相加,并除以7就可以了,得到的余数就是其年份代码。10年的年份代码是5,11年年份代码为6。 4、秒算任意日期的星期数 如,我们算一下2010年4月25日 日期代码25 月份代码5 年份代码5 日期代码+月份代码+年份代码=25+5+5=35 35是7的倍数,所以2010年4月25日是星期日 再比如算一下2010年10月1日 日期代码1 月份代码6 年份代码5 日期代码+月份代码+年份代码=1+6+5=12 12除以7余5,所以2010年10月1日是星期五 如果得到的代码和是小于7的数,那么此数直接是星期数 如果得到的代码和是大于7的数,那么将该数除以7得到的余数为星期数。 方法二 原理:蔡勒公式 1、W=[C/4]-2C+y+[y/4]+[26(m+1)/10]+d-1 (其中[ ]为取整符号)
2、其中,W是所求日期的星期数.如果求得的数大于7,可以减去7的倍数,直到余数小于7为止.c是公元年份的前两位数字,y是已知公元年份的后两位数字;m是月数,d是日数.方括[ ]表示只截取该数的整数部分。
3、还有一个特别要注意的地方:所求的月份如果是1月或2月,则应视为前一年的13月或14月.所以公式中m 的取值范围不是1-12,而是3-14.
到此,以上就是小编对于计算星期 c语言的问题就介绍到这了,希望介绍关于计算星期 c语言的3点解答对大家有用。