hrbust 1555 正确的日期格式
来源:互联网 发布:mill9%2e1编程教程 编辑:程序博客网 时间:2024/04/28 14:08
正确的日期格式
Time Limit: 1000 MS Memory Limit: 10240 K
Total Submit: 495(110 users) Total Accepted: 129(89 users) Rating: Special Judge: No
Description
这个题目要你判断题目给的日期格式是否符合格式。
我们先定义日期的格式:yyyy-mm-dd,就是年-月-日,年份占四位,月份占两位,日占两位,不足的用前导0补齐,年月日之间以”-“分隔。
Input
有多组测试数据,每组测试数据占一行,一行除了换行符外,可能有0个字符或者更多字符,但是不超过255个字符。所给字符都是ASCII码表里可显示的字符。
处理到文件结束。
Output
输出一行,如果日期是正确的格式,则输出Yes,否则输出No。
Sample Input
1991-03-05
0-03-05
199999-333-55555
1991:03:05
Sample Output
Yes
No
No
No
Hint
yyyy不应该有”0000”这个情况。
感觉题目表意不清······这里坑点就是没告诉到底要判断到什么程度才算是正确,不只是格式和字符正确,日期也要有正确数值,平润年需要判断,月份和天数需要判断
#include<stdio.h>#include<string.h>int main(){ char a[300]; int i; while(gets(a))///输入 { bool flag=true; int n=strlen(a); if(n!=10)///长度不符,pass { printf("No\n"); continue; } if(a[4]!='-'||a[7]!='-')///横杠符号不符,pass { printf("No\n"); continue; } int sum=0; int year=0; int month=0; int day=0; for(i=0; i<10; i++)///分别从字符串中取出年 月 日,用数字存储 { if(i==4)///到达第四位 { year=sum;///年份 sum=0; continue; } if(i==7)///到达第七位 { month=sum;///月份 sum=0; continue; } if(a[i]<'0'||a[i]>'9')///判断日期内是否是正确数字字符 { printf("No\n"); flag=false; break; } else { sum=sum*10+a[i]-'0';///化字符为数字的循环 } } day=sum; if(year==0||month==0||day==0)///年月日都不能为数字0 { printf("No\n"); continue; }// printf("%d %d %d\n",year,month,day); if(flag&&(year%4==0&&year%100!=0||year%400==0))///平年闰年判断 { if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) { if(day>=1&&day<=31)///各个月份天数判断 { printf("Yes\n"); } else { printf("No\n"); } } else if(month==2||month==4||month==6||month==9||month==11) { if(month==2&&day<=29&&day>=1) { printf("Yes\n"); } else if((month==4||month==6||month==9||month==11)&&day<=30&&day>=1) { printf("Yes\n"); } else { printf("No\n"); } } else { printf("No\n"); } } else if(flag) { if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) { if(day>=1&&day<=31) { printf("Yes\n"); } else { printf("No\n"); } } else if(month==2||month==4||month==6||month==9||month==11) { if(month==2&&day<=28&&day>=1) { printf("Yes\n"); } else if((month==4||month==6||month==9||month==11)&&day<=30&&day>=1) { printf("Yes\n"); } else { printf("No\n"); } } else { printf("No\n"); } } } return 0;}//首先1:该字符串不能有除数字和 ‘ - ’以外的字符。年数,天数,日数不能全为零//// 2:有些月份的天数不能超过31,有些月份的天数不能超过30//// 3:平年闰年的区别//// 4:输入要用gets(坑点)
0 0
- hrbust 1555 正确的日期格式
- 哈理工 hrbust 正确的日期格式
- 检查日期的格式 数字格式 是否正确
- 判断日期格式是否正确。
- 判断日期格式是否正确
- java中判断输入日期的格式是否正确
- 判断输入日期格式是否正确的正则表达式
- SimpleDateFormat的格式原来可以是任意的,不需要是正确的日期格式
- javascript判断日期格式是否正确
- javascript判断日期格式是否正确
- JS验证日期格式是否正确
- PHP判断日期格式是否正确
- C#判断日期时间格式是否正确
- js 验证日期格式是否正确
- 判断输入日期格式是否正确!
- java中判断日期格式是否正确
- php校验日期格式是否正确
- PHP校验日期格式是否正确
- Object-c 方法之间传递多个参数
- CCF数列分段JAVA答案
- 自己写一个简单通用的Makefile
- Rock, Scissors, Paper
- tensorflow学习笔记十五:tensorflow官方文档学习 Logging and Monitoring Basics with tf.contrib.learn
- hrbust 1555 正确的日期格式
- 【九度OJ】题目1194:八进制 解题报告
- 团体程序设计天梯赛-练习集 L3-007. 天梯地图 最短路 dijkstra 解题报告
- json在python中的处理
- 客户端存储
- Markdown——入门指南
- 利用位运算判断数组中是否有重复的数字
- 2.10.PHP7.1 女神级教程-女神的私人信息 -【PHP 函数】
- 最短路径 还原路径(dijkstra算法)