再来问一道 算日期的 问题
试题二(共15分)
阅读以下说明和C语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
已知1900年1月1日是星期一,下面的函数count_5_13(int year)用于计算给定的年份year中有几个“黑色星期五”。“黑色星期五”指既是13日又是星期五的日期。
函数count_5_13(int year)首先算出年份year的1月13日是星期几,然后依次计算每个月的13日是星期几,若是星期五,则计数。
程序中使用了函数isLeapYear(int year),其功能是判断给定年份是否为闰年,返回值为1(或0)分别表示year是(或不是)闰年。
[C语言函数]
int count_5_13(int year)
{
int date; /* date为0表示星期日,为1~6分别表示星期一至星期六 */
long days = 0; /* days记录天数 */
int m, y, c = 0; /* c用于表示黑色星期五的个数 */
if (year < 1900) return -1;
/*计算从1900年1月1日起,至给定年份year的1月13日间隔的天数*/
days = 12;
for (y = 1900; y < year; y++) {
days += 365;
if (isLeapYear(y)) (1) ;
}
date = ((days % 7) + 1) % 7; /* 算出给定年份year的1月13日是星期几 */
c = ( (2) ) ? 1 : 0;
for(m = 1; (3) ; m++) {
switch (m) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
days = 31; break;
case 4: case 6: case 9: case 11:
days = 30; break;
case 2: days = 28;
if ( (4) ) days = 29;
break;
}/* end of switch*/
date =((days % 7) + (5) ) % 7;
if (date == 5) c++;
} /* end of for*/
return c;
}
我把整个题 贴出来了 。还没有研究完 先问一个 我迷惑的地方 ((1年365天%7)+1)%7 结果等于几 就是礼拜几? 为什么啊?! 那中加的+1 就是加一个礼拜了吧? 假设第一次%7取余以后 是52个礼拜 余1天 +1算怎么个回事 。。。请教大虾 小弟没有开发经验。所以对这些 不太明白~~
...全文
相关推荐
指定日期算秒
在IT行业中,日期和时间的计算是至关重要的,特别是在数据处理、日志记录、系统调度等领域。"指定日期算秒"这个主题涉及到的是如何在编程中处理日期和时间的差值,以及考虑到闰年和平年的差异。
详解element-ui日期时间选择器的日期格式化问题
然而,在实际应用中,我们可能会遇到将前端选取的日期时间传递给后台时,由于格式不匹配导致的问题。本文将深入探讨Element-UI日期时间选择器的日期格式化问题及其解决方案。
SQL Server中日期问题的解决
请注意,这种方法可能会导致日期格式不匹配的问题,因此在实际应用时需确保目标日期与数据库中的日期格式一致。
Javascript 日期处理之时区问题
### JavaScript 日期处理之时区问题解析在JavaScript中处理日期时,经常遇到的一个问题是与时区相关的错误。本文将深入探讨这一现象,并提供相应的解决策略。
日期插件默认显示日期为当前日期
同时,也需要考虑时区问题,有些插件可能会根据用户的系统时区自动调整,而有些则需要手动设置。


