注册 登录
编程论坛 新人交流区

求一天是该年中的第几天

野郎中 发布于 2007-10-15 22:57, 254 次点击

#include<iostream>
using namespace std;
void main()
{
int i,year,month,day,mdays[]={31,28,31,30,31,30,31,31,30,31,30,31},sum=0;
cout<<"请输入年、月、日:"<<endl;
cin>>year>>month>>day;

//对闰年的处理
if(year%4==0&&(year%100!=0||year%400==0))
sum+=1;
for(i=0;i<month-1;i++)
sum+=mdays[i];

cout<<year<<"年"<<month<<"月"<<day<<"日是"<<year<<"年的第"<<sum+day<<"天。"<<endl;
}

2 回复
#2
dingpin2007-10-15 23:21

也可以不用把每个月的天数定义到一个数组里面
我是这样写的.....
#include <stdio.h>
void main()
{
int day,month,year,sum,leap;
printf("\n请输入日期(年月日):\n");
scanf("%d,%d,%d",&year,&month,&day);//如:1986,11,27 格式不要弄错
switch(month)
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:
printf("请输入正确的日期:\n");
}
sum=sum+day;
if(year%400==0||(year%4==0&&year%100!=0))
leap=1;
else
leap=0;
if(leap==1&&month>2)
sum++;
printf("这天是今年的第%d天.\n",sum);
}

#3
dz861022007-10-16 00:26
是这样吗
1