NOJ1008-第几天
第几天
总提交 : 2701 测试通过 : 800
比赛描述
在我们现在使用的日历中, 闰年被定义为能被4整除的年份,但是能被100整除而不能被400整除的年是例外,它们不是闰年。例如:1700, 1800, 1900 和 2100不是闰年,而 1600, 2000 和 2400是闰年。
给定公元2000年1月1日后的某年某月某日(包括2000年1月1日),你的任务:(1)给出这一天从公元2000年1月1日开始逝去的天数,(2)判断这一天是当年的第几天。
输入
输入包含若干行,每行包含三个空格间隔的正整数,它们分别表示年、月、日。输入最后一行是−1, 不必处理。可以假设结果的年份不会超过9999。
输出
多组,每组两行,分别为每行输入所代表的一天从公元2000年1月1日开始逝去的天数、在当年的第几天。
样例输入
2000 1 1
2009 3 14
-1
样例输出
0
1
3360
73
题目来源
NUPT
思路:一道简单的日期计算问题,除了考虑闰年还有题目中说“从公元2000年1月1日开始逝去的天数”,所以2000.1.1这天就不算了,最后count要减去1
#include <cstdio>
int m[] = { , , , , , , , , , , , , };
bool Judge( int year ) {
if( year % == || ( year % == && year % != ) ) {
return true;
}
return false;
}
int main() {
int year, month, day;
while( ) {
scanf( "%d", &year );
if( year == - ) {
break;
}
else {
int count = ;//从2000.1.1开始总的天数
int sum = ;//当年总的天数
scanf( "%d%d", &month, &day );
if( Judge( year ) ) {
m[] = ;
}
else {
m[] = ;
}
for( int i = ; i < month; i++ ) {
sum += m[i];
}
sum += day;
for( int i = ; i < year; i++ ) {
if( Judge( i ) ) {
count += ;
}
else {
count += ;
}
}
count += sum;
count -= ;//2000.1.1这天不计算
printf( "%d\n%d\n", count, sum );
}
}
return ;
}
随机推荐
- Android Studio 修改 包名 package name
我们的包名中含有Nav,造成声音不能正常出来:需要改包名,但 android studio 改包名原来还是比较麻烦的,不过现在简单多了: 第一步,直接打开 AndroidManifast.xml 文件 ...
- 慕课网-安卓工程师初养成-4-9 Java循环语句之 for
来源:http://www.imooc.com/code/1425 Java 的循环结构中除了 while 和 do...while 外,还有 for 循环,三种循环可以相互替换. 语法: 执行过程: ...
- UVa11054 Gergovia的酒交易 Wine trading in Gergovia-递推
https://vjudge.net/problem/UVA-11054 As you may know from the comic “Asterix and the Chieftain’s Shi ...
- Git 使用及原理 总结
1. $git diff origin/master master (show me the changes between the remote master branch and my mast ...
- uinavigation样式
UINavigationController* pNav = [[UINavigationController alloc] initWithRootViewController:pView]; [p ...
- CSS3之动画相关
CSS3动画相关的属性:transform,transition,animation. 变形Transform 语法: transform: rotate | scale | skew | trans ...
- poj1008_Maya_Calendar
历法的转换. #include <stdio.h> #include <math.h> #include <string.h> ][]={ "pop&qu ...
- ASP.NET数据绑定
数据绑定是ASP.NET提供的另一种访问数据库的方法.与ADO.NET数据库访问技术不同的是:数据绑定技术可以让程序员不关注数据库连接.数据库命令以及如何格式化这些数据以显示在页面上等环节,而是直接把 ...
- POJ C程序设计进阶 编程题#1:分配病房
编程题#1:分配病房 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 某个科 ...
- scribe日志分析工具安装
系统CentOS6.2 x86_64 1.yum安装gcc,flex,m4,python/python-devel,ruby,libevent/libevent-devel,openssl/opens ...