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

求教while循环语句!!

Angel_SK 发布于 2007-10-27 04:53, 784 次点击


老师布置一题,要求输入年月日,显示今天是今年的第几天~

哪位大侠有时间教教我,不甚感激!

QQ:100848761,或者发帖留言!谢谢!


28 回复
#2
fable2007-10-27 06:46

先判断闰年
然后再决定2月的天数
然后再判断大小月
然后再加到一起

#3
╰ァ琳〆2007-10-27 06:58
先算出一年有几天(是366还是365),然后算出每个月有几天,把输入的那个月的前面的月份的天数加起来,再加上输入的日(几号)
#4
dingpin2007-10-27 09:22
#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);
}
#5
fable2007-10-27 11:40

楼上的兄弟正解

#6
lxtx2007-10-27 13:03
用类实现
#7
ddt012007-10-28 22:57
学习,学习
#8
黄毛19782007-10-29 00:32
支持++
#9
yxwsbobo2007-10-29 06:31

date today;
getday(today)

#10
Angel_SK2007-10-29 08:55

额``谢谢dingpin兄~~

我想问一下,这个程序能不能用while语句实现呢??

#11
jonvahe2007-10-29 09:46
这个用sql语句能否实现呢?
#12
viq8862007-10-29 11:11
getYear()
#13
bcvg_ts2007-10-29 11:12
/*第一行的排列不与其应对应的星期数对齐*/
/*万年历*/
#include "stdio.h"
/*计算该天离该年元旦的天数*/
int get_days (year,month,date)
int year,month,date;
{
int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int i;
int sum=0;
if (leap_year(year)) m[2]=29;
for (i=1;i<month;i++)
sum+=m[i];
sum+=date;
return sum;
}

/*判断是否为闰年*/
int leap_year (year)
int year;
{
int leap;
leap=0;
if (year/100==0&&year/400==0) leap=1;
if (year/100!=0&&year/4==0) leap=1;
return leap;
}

/*计算该日的星期数*/
int get_week(year,month,date)
int year,month,date;
{
int week;
week=(year-1)+(year-1)/100-(year-1)/400+(year-1)/1000;
week+=get_days(year,month,date);
week%=7;
return week;
}

/*输出日历*/
void calendar (year,month,date)
int year,month,date;
{
int i;
int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("%d.%d\n",year,month);
printf("***************************************\n");
printf("SUN MON TUE WED THU FRI SAT\n");
for (i=1;i<m[month];i++)
{
printf("%-6d",i);
if (get_week(year,month,i)==6)
printf("\n");
}
printf("\n***************************************\n");
}

/*mian*/
void main()
{
int year,month,date;
printf("Input year,month,date as XX.XX.XX\n");
scanf("%d.%d.%d",&year,&month,&date);
printf("\n");
calendar(year,month,date);
}
#14
bcvg_ts2007-10-29 11:13
有点小问题。。。。
不知道怎么改。。。
大家看看
顺便帮我改改
#15
songying2007-10-29 15:38
大家都很厉害啊!想到那么多种实现方法。
#16
reandy2007-10-29 15:43
顶!
#17
luofeng842007-10-29 15:58
#18
luofeng842007-10-29 15:58
#19
gfyy83122007-10-29 17:09
学习了
#20
oOiOo2007-10-31 17:25
用while比较麻烦,要用嵌套
先判断是否闰年,再判断哪月几天.分三类.31,30 ,28/29
好久没编C了.程序就不写了.
估计你的问题解决了吧
#21
爱昵宝宝2007-10-31 17:46
//如:1986,11,27 格式不要弄错


C语言里能用这个吗??“//”
#22
Angel_SK2007-11-02 01:42
额``呵呵,多谢大家关心。

问题已经搞定了```

不过新的麻烦又来了。。。。

我发新帖子,大家有空来看看````
#23
home962007-11-02 09:06
  比较厉害,来学习了。
#24
yfcnic2007-11-02 10:37
大家好厉害。。。
#25
lianhao92007-11-03 16:18
这个不是很难吧
#26
qwwangqing2007-11-03 16:31
学每门语言都有这个作业所
#27
xmzorro2007-11-03 16:44
运行Picture2.Print 时出现“运行时错误 '480 ',可能有数据库有关。请多指导,谢谢。
如果定义Qjnum2int=30时在什么系统都能用。
如果定义Qjnum2int=1000时在98的系统下运行不了。会显示
“运行时错误 '480 ':
 定义的应用程序或对象错误”
程序如下:
Picture2.ScaleWidth = 36
Picture2.ScaleHeight = Qjnum2int
Picture2.FontSize = 6.5
Picture2.FillColor = RGB(250, 250, 162)
Picture2.ForeColor = RGB(10, 0, 0)
Picture2.CurrentX = num - 0.85
Picture2.CurrentY = Y + 0.1
Picture2.Print rsdata.Fields(d).Value(在这一步出错的!)
我的数据库是这样打开的。
Set db = OpenDatabase(T_dbAdd(T_NumInt) & T_dbName(T_NumInt), False, False, " ")
Set rsdata = db.OpenRecordset(T_dbRecordset(T_NumInt))
请您们多多指教。谢谢。
#28
cocojj1232007-11-03 20:58
强啊,我也编一个
#29
毛山道士2007-11-04 15:23
高手还瞒多的啊,以后还请大家多多帮忙啊
1