C语言源代码——计算任何一天是星期几

代码写的不严谨。

网上也有很多计算任何一天是星期几的C语言源代码,不过,有些代码含有一点点小错误。像闰年的分辨啊,或者是每个月的天数,再或者星期的计算公式,都是比较细微的环节,出一点错误都有可能导致结果不正确。这一点,我都进行过验证。下面我选出的这组代码,结构清晰,语法明确。希望能给各位C的爱好者或者要考计算机二级的同学们一点点帮助!当然,有错误的话,也请各位指出!

代码如下:

 1 #include <stdio.h>
 2 int main()
 3 {
 4 int day,mn,yr,i,days=0,s,k;
 5 int mont[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 6 char wek[][9]={ {‘S‘,‘u‘,‘n‘,‘d‘,‘a‘,‘y‘},
 7 {‘M‘,‘o‘,‘n‘,‘d‘,‘a‘,‘y‘},
 8 {‘T‘,‘u‘,‘e‘,‘s‘,‘d‘,‘a‘,‘y‘},
 9 {‘W‘,‘e‘,‘d‘,‘n‘,‘s‘,‘d‘,‘a‘,‘y‘},
10 {‘T‘,‘h‘,‘u‘,‘r‘,‘s‘,‘d‘,‘a‘,‘y‘},
11 {‘F‘,‘r‘,‘i‘,‘d‘,‘a‘,‘y‘},
12 {‘S‘,‘a‘,‘t‘,‘u‘,‘r‘,‘d‘,‘a‘,‘y‘}
13       };
14 printf("Inpute the date (year-month-day):");
15 scanf("%d-%d-%d",&yr,&mn,&day);
16 if (yr%4==0||yr%100==0||yr%400==0)
17 mont[2]=29;
18 else
19 mont[2]=28;
20 for (i=0;i<mn;i++)
21 days+=mont[i];
22 days+=day;
23 s=yr-1+(int)((yr-1)/4)-(int)((yr-1)/100)+(int)((yr-1)/400)+days;
24 k=s%7;
25 printf("%d-%d-%d is %s.",yr,mn,day,wek[k]);
26    return 0;
27 } 
时间: 2024-12-12 10:14:35

C语言源代码——计算任何一天是星期几的相关文章

【C语言】 计算任意2个日期之间的天数

[本文原创于Paul的博客园技术博客.] [本文欢迎转载,转载请以链接形式注明出处.] [本博客所有文章都经博主精心整理,请尊重我的劳动成果.] [C语言] 计算任意2个日期之间的天数 1. 要判断时间的合法性(如果不想判断也可以) 2. 判断两个日期之间的天数 判断输入的年份是不是闰年:年份是否相同:月份是否相同:日是否相同?同年同月最好计算,日数相减就出来了:同年不同月也好计算,计算中间相隔几个月,转换成天数,小的日期距月底有多少天,大的日期距月初多少天,三个数相加:关键是不同年的日期计算:

李洪强漫谈iOS开发[C语言-041]-计算月份天数

李洪强漫谈iOS开发[C语言-041]-计算月份天数 

不同语言的计算精度和范围

Published: 2017-04-13 21:05:00 In Program. tags: Scala 不同语言的计算精度和范围问题 精度是数字中的数字个数,浮点数在计算机中的表达有限制,不能以任意精度存储 尤其是微小的或巨大的数字在运算时经常会有些意外情况, 在处理大数据的时候,数据量大,其中的一些关于数据量的运算很可能造成结果在少量数据时正常,而在大量数据时运算出现错误的情况. 说明 采用计算机计算数据的时候,数据的精度和数据的范围一定要注意,这方面的问题很隐蔽,在这里总结一下, 计算

c语言详解  蔡勒(Zeller)公式计算某一天是星期几  极其方便

—— 蔡勒(Zeller)公式 历史上的某一天是星期几?未来的某一天是星期几?关于这个问题,有很多计算公式(两个通用计算公式和一些分段计算公式),其中最著名的是蔡勒(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:日:[ ]代

计算任意一天是星期几

如何计算某一天是星期几?slowtiger 发表于 2009-11-19 08:42:00 如何计算某一天是星期几?—— 蔡勒(Zeller)公式 历史上的某一天是星期几?未来的某一天是星期几?关于这个问题,有很多计算公式(两个通用计算公式和一些分段计算公式),其中最著名的是蔡勒(Zeller)公式.即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 公式中的符号含义如下,w:星期:c:世纪-1:y:年(两位数):m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1

word2vec中文类似词计算和聚类的使用说明及c语言源代码

word2vec相关基础知识.下载安装參考前文:word2vec词向量中文文本相似度计算 文件夹: word2vec使用说明及源代码介绍 1.下载地址 2.中文语料 3.參数介绍 4.计算相似词语 5.三个词预測语义语法关系 6.关键词聚类 1.下载地址 官网C语言下载地址:http://word2vec.googlecode.com/svn/trunk/ 执行 make 编译word2vec工具: Makefile的编译代码在makefile.txt文件里,先改名makefile.txt 为M

Gogland使用 - 非常简单查看Go语言源代码全貌!

Go语言也支持面向对象开发,不过和以往我们所使用的面向对象开发还是有不同,Go语言主张组合方式形成类的概念,在Go语言中,结构起到很大作用,如果用结构组合字段和方法,那么单纯在源代码中看,真的是费时费力,尤其看别人写的代码,举例如下: type rawConnection struct { id DeviceID name string receiver Model cr *countingReader cw *countingWriter awaiting map[int32]chan asy

C语言 &#183; 还款计算

标题: 还款计算 银行贷款的等额本息还款方法是: 每月还固定的金额,在约定的期数内正好还完(最后一个月可能会有微小的零头出入). 比如说小明在银行贷款1万元.贷款年化利率为5%,贷款期限为24个月. 则银行会在每个月进行结算: 结算方法是:计算本金在本月产生的利息: 本金 x (年利率/12) 则本月本金结余为:本金 + 利息 - 每月固定还款额 计算结果会四舍五入到"分". 经计算,此种情况下,固定还款额应为:438.71 这样,第一月结算时的本金余额是: 9602.96 第二个月结

自动机理论、语言和计算导论 by John E. Hopcroft

计算理论是计算机应用的基础,理论和应用缺一而不可. ---- 目录 ---- C01 自动机 C02 有穷自动机 C03 正则表达式与正则语言 C04 正则语言的性质 C05 上下文无关文法及上下文无关语言 C06 下推自动机 C07 上下文无关语言的性质 C08 图灵机 C09 不可判定性 C10 难解问题 C11 其他问题类 ---- C01 自动机 ---- 有穷自动机(FA)的两个重要因素是状态和跳转,状态是数据/环境,跳转是函数/响应. 自动机的结构表示法有两种,一种是正则表达式,正则