一、日期计算
语言:C
题目:输入一个日期,格式如:2010-10-24 ,判断这一天是这一年中的第几天。
输入:第一行输入一个数N(0<N<=100),表示有N组测试数据。后面的N行输入多组输入数据,每行的输入数据都是一个按题目要求格式输入的日期。
输出:每组输入数据的输出占一行,输出判断出的天数n
样例输入:
3
2000-4-5
2001-5-4
2010-10-24
样例输出:
96
124
297
正好之前给人做过这个题目.
重点是:一个每月天数数组.一个输入年份月份获取当月天数方法.然后就是循环加了.
int[] day4m=[31,28,31,30,31,30,31,31,30,31,30,31]
function int day4ym(int year,int m){if(m==2){判断闰年返回day4m[m-1]+1}else{return day4m[m-1];}}
然后就是循环月份的次数.把之前所有月份的天数加起来.再加上日数.就是结果.
大神,能不能给个完整代码,我好琢磨琢磨。
@遥路漫漫:
function day4year( y, m, d ) { var day4m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; if ( y < 0 || m < 0 || d < 0 ) { return -1; } if ( m > 12 ) { return -1; } if ( d > day4m[m] ) { return -1; } var rt = d; for ( var i = 0; i < m; i++ ) { rt += day4m[i]; } if ( isLeapYear( y ) && m > 2 ) { rt += 1; } return rt; } function isLeapYear( y ) { return ( ( ( y % 4 ) == 0 ) && ( y % 100 ) != 0 ) || ( y % 400 == 0 ); }
说实话.你问题大...
@吴瑞祥: 大神能在帮个忙吗?
这里有java的代码 , 您能不能翻译成c代码?
#include <conio.h>
#include<stdio.h>
void main()
{
int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int i,j,k,y,m,d,b,n,sum;
int N=0;
int year[100];
int month[100];
int day[100];
scanf("%d",&N);
printf("日期输入格式:2010-6-9 \n");
for(i=0;i<N;i++)
scanf("%d-%d-%d",&year[i],&month[i],&day[i]);
for(j=0;j<N;j++)
{
sum=0;
for(i=1;i<month[j];i++)
sum=sum+days[i];
sum=sum+day[j];
if((year[j]%4==0||(year[j]%400==0&&year[j]%100!=0)) &&month[j]>2)
sum=sum+1;
printf("%d\n",sum);
}
getch();
}