版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuehailin/article/details/87737667
1015: 第几天
时间限制: 1 Sec 内存限制: 128 MB
题目描述
给定一个日期, 输出这个日期是该年的第几天。
输入
数据格式为 YYYY/MM/DD组成, 具体参见输入示例。另外,所有输入数据是合法的。
输出
对于每组输入数据,输出一行,表示该日期是该年的第几天。
样例输入
1985/01/20 2006/03/12
样例输出
20 71
在写代码之前我记录一下自己学到的一些c语言的知识:
1.字符串s=‘123’转换成数字123用atoi(s);
2.c语言中用strncpy来截取字符串
strncpy(year,a,4);//截取a中前4个字符到year字符中
strncpy(mon,a+5,2);//截取a中6到7个字符(包括6和7)
代码:
扫描二维码关注公众号,回复:
5310777 查看本文章
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
char a[100];
int ping[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int run[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
while(scanf("%s",a)!=EOF){
int tianshu=0;
int len;
len = strlen(a);
int i;
char year[4];
char mon[2];
char day[2];
strncpy(year,a,4);
strncpy(mon,a+5,2);
strncpy(day,a+8,2);
int nian,yue,tian;
nian = atoi(year);
yue = atoi(mon);
tian = atoi(day);
if(nian%400==0||(nian%4==0&&nian%100!=0)){
for(i=1;i<yue;i++){
tianshu = tianshu+run[i];
}
tianshu = tianshu+tian;
}
else{
for(i=1;i<yue;i++){
tianshu = tianshu+ping[i];
}
tianshu = tianshu+tian;
}
printf("%d\n",tianshu);
}
}