| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2775 人关注过本帖
标题:给出年,月,日,计算该日是该年的第n天
只看楼主 加入收藏
水漾花
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-11-9
收藏
 问题点数:0 回复次数:14 
给出年,月,日,计算该日是该年的第n天
1给出年,月,日,计算该日是该年的第N天
搜索更多相关主题的帖子: 该日 
2006-11-30 18:44
财鸟
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2006-11-2
收藏
得分:0 

这个问题很简单呀!
年对四求余!!!!!!确定2月的值!!!!!!!!
对月的值进行判断!!!!!!!!!分出大月,月,2月(小月)
在用循环加
最后加上日!!!!!!!!!
就OK了
是不是很简单呀!!!!!!!!!!!!1

2006-11-30 19:11
卧龙孔明
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:59
帖 子:3872
专家分:684
注 册:2006-10-13
收藏
得分:0 

int i,days=0;
int p[12]={31,28,31,30,31,30,31,31,30,31,30,31}
if(闰年) p[1]++;
for(i=0;i<月份数;i++) days+=p[i];
printf("%d",days+天数);

闰年判断方法楼上已写,如不懂跟帖提问,闰年判断最好通过函数(这样结构化思想强,利于读懂程序),月份数与天数通过scanf读取,这是最基本的了,写好scanf后将读入数据的变量名替换这些文字就是纯C语言程序了

[此贴子已经被作者于2006-11-30 20:09:18编辑过]


My Blog: www.aiexp.info
虽然我的路是从这里开始的,但是这里不再是乐土.感谢曾经影响过,引导过,帮助过我的董凯,飞燕,leeco,starwing,Rockcarry,soft_wind等等等等.别了,BCCN.
2006-11-30 20:06
linsq
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2006-11-20
收藏
得分:0 

int year
if(year%4==0&&year%100!=0)||(year%400==0);
是闰年
else
不是闰年

[此贴子已经被作者于2006-11-30 22:16:44编辑过]


2006-11-30 22:14
adukakaxi
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2006-10-18
收藏
得分:0 
卧龙孔明

做最好的自己,编最好的程序!
2006-11-30 22:41
hyxlz2008
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-11-30
收藏
得分:0 
main()
{
int year,month,day,N,i,tatol_day;
printf("input the year,month and day:\n");
{
scanf("%d,%d,%d",&year,&month,&day);
if(month<=0||month>12)
{ i=1;
printf("input error month,pls input ag !\n");
}
if(month==2)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
if( day<1||day>29)
{i=1;
printf("input error day,pls input ag !\n");
}
}
else
if( day<1||day>28)
{i=1;
printf("input error day,pls input ag !\n");
}
}
else
{
if((month==1)
||(month==3)
||(month==5)
||(month==7)
||(month==8)
||(month==10)
||(month==12))
{if(day<1||day>31)
{i=1;
printf("input error day,pls input ag !\n");
}
}
else
{
if(day<1||day>30)
{i=1;
printf("input error day,pls input ag !\n");
}
}
}
}while(1);

switch(month)
{
case:1
N=day;
break;
case:2
N=31*(month-1)+day;
break;
case:3
N=31*(month-1)-2+day; // +29
break;
case:4
N=31*(month-1)-2+day;
break;
case:5
N=31*(month-1)-3+day;
break;
case:6
N=31*(month-1)-3+day;
case:7
N=31*(month-1)-4+day;
break;
case:8
N=31*(month-1)-4+day;
break;
case:9
N=31*(month-1)-4+day;
break;
case:10
N=31*(month-1)-5+day;
break;
case:11
N=31*(month-1)-5+day;
break;
case:12
N=31*(month-1)-6+day;
break;
default:
break;
}
if(((year%4==0&&year%100!=0)||(year%400==0))||(month<=2))
tatol_day=N;
else
tatol_day=N-1;
printf("the day is %d\n",tatol_day);
}
2006-12-01 11:18
hyxlz2008
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-11-30
收藏
得分:0 
以下是引用hyxlz2008在2006-12-1 11:18:01的发言:
main()
{
int year,month,day,N,i,tatol_day;
printf("input the year,month and day:\n");
{
scanf("%d,%d,%d",&year,&month,&day);
if(month<=0||month>12)
{ i=1;
printf("input error month,pls input ag !\n");
}
if(month==2)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
if( day<1||day>29)
{i=1;
printf("input error day,pls input ag !\n");
}
}
else
if( day<1||day>28)
{i=1;
printf("input error day,pls input ag !\n");
}
}
else
{
if((month==1)
||(month==3)
||(month==5)
||(month==7)
||(month==8)
||(month==10)
||(month==12))
{if(day<1||day>31)
{i=1;
printf("input error day,pls input ag !\n");
}
}
else
{
if(day<1||day>30)
{i=1;
printf("input error day,pls input ag !\n");
}
}
}
}while(1);

switch(month)
{
case:1
N=day;
break;
case:2
N=31*(month-1)+day;
break;
case:3
N=31*(month-1)-2+day; // +29
break;
case:4
N=31*(month-1)-2+day;
break;
case:5
N=31*(month-1)-3+day;
break;
case:6
N=31*(month-1)-3+day;
case:7
N=31*(month-1)-4+day;
break;
case:8
N=31*(month-1)-4+day;
break;
case:9
N=31*(month-1)-4+day;
break;
case:10
N=31*(month-1)-5+day;
break;
case:11
N=31*(month-1)-5+day;
break;
case:12
N=31*(month-1)-6+day;
break;
default:
break;
}
if(((year%4==0&&year%100!=0)||(year%400==0))||(month<=2))
tatol_day=N;
else
tatol_day=N-1;
printf("the day is %d\n",tatol_day);
}

这段代码还需要修改:
在scanf("%d,%d,%d",&year,&month,&day);前要加上i=0;
既: ……
printf("input the year,month and day:\n");
{
i=0; // must add
scanf("%d,%d,%d",&year,&month,&day);
if(month<=0||month>12)
……
另外有一处笔误:while(1);应为while(i);

2006-12-01 11:25
unicorn
Rank: 4
等 级:贵宾
威 望:14
帖 子:1066
专家分:0
注 册:2005-10-25
收藏
得分:0 

#include<stdio.h>
struct date
{
int year;
int month;
int day;
}a;
int fun(struct date);
void main()
{
while(printf("input the data(year/month/day):"),scanf("%d/%d/%d",&a.year,&a.month,&a.day))
printf("There are %d days\n",fun(a)+a.day);
}

int fun(struct date a)
{
int leap=0,sum=0;
int num[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}};
if((a.year%4==0&&a.year%100!=0)||a.year%400==0) leap=1;
for(int i=0;i<a.month;i++) sum+=num[leap][i];
return sum;
}


unicorn-h.spaces. ◇◆ sava-scratch.spaces.  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-12-01 11:47
hyxlz2008
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-11-30
收藏
得分:0 
以下是引用unicorn在2006-12-1 11:47:44的发言:

#include<stdio.h>
struct date
{
int year;
int month;
int day;
}a;
int fun(struct date);
void main()
{
while(printf("input the data(year/month/day):"),scanf("%d/%d/%d",&a.year,&a.month,&a.day))
printf("There are %d days\n",fun(a)+a.day);
}

int fun(struct date a)
{
int leap=0,sum=0;
int num[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}};
if((a.year%4==0&&a.year%100!=0)||a.year%400==0) leap=1;
for(int i=0;i<a.month;i++) sum+=num[leap][i];
return sum;
}

unicorn 你太强了,有机会指点指点一下小弟。
其中有一点我不太明白,
while(printf("input the data(year/month/day):"),scanf("%d/%d/%d",&a.year,&a.month,&a.day))
是怎么判断的。谢谢!

请问你的联系方式,我要向你请教很多问题。

2006-12-01 15:56
stator
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-11-29
收藏
得分:0 

main()
{
char strp[100];
strp = "Test" ;
}


Statorhero\'s back﹏...
2006-12-01 18:16
快速回复:给出年,月,日,计算该日是该年的第n天
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013850 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved