你好像没考虑年数对天数的影响。
#include <stdio.h>
int main()
{
int y, m, d, r, sum
while(scanf("%d/%d/%d", &y, &m, &d) !=EOF)
{
switch(m)
{
case 1: sum=0break
case 2: sum=31break
case 3: sum=59break
case 4: sum=90break
case 5: sum=120break
case 6: sum=151break
case 7: sum=181break
case 8: sum=212break
case 9: sum=243break
case 10: sum=273break
case 11: sum=304break
case 12: sum=334break
default: printf("Data error!")break
}
if((y%400==0) || (y%4==0&&y%100!=0)) r=1
else r=0
if(m>2) sum = sum+d+r
else sum = sum+d
printf("%d\n",sum)
}
return 0
}
秒表计时器的代码#include
<stdio.h>
#include
<conio.h>
#include
<windows.h>
#include
<stdlib.h>
struct
tm
//定义时间结构体,包括时分秒和10毫秒
{
int
hours,minutes,seconds
int
hscd
}time,tmp,total
//time用以计时显示,tmp用以存储上一阶段时间,total记总时间
int
cnt
FILE*
fout
//每次调用update函数,相当于时间过了10ms
void
update(struct
tm
*t)
{
(*t).hscd++
//10ms单位时间加1
cnt++
if
((*t).hscd==100)
//计时满1s,进位
{
(*t).hscd=0
(*t).seconds++
}
if
((*t).seconds==60)
//计时满一分,进位
{
(*t).seconds=0
(*t).minutes++
}
if
((*t).minutes==60)
//计时满一小时,进位
{
(*t).minutes=0
(*t).hours++
}
if((*t).hours==24)
(*t).hours=0
//delay()
Sleep(10)
//Sleep是windows提供的函数,作用是暂停程序,单位毫秒,所以此处暂停10ms
}
void
display(struct
tm
*t)
{
//此处输出计时结果,\r为回车不换行,既一直在同一行更新时间
printf("%d:",(*t).hours)
printf("%d:",(*t).minutes)
printf("%d:",(*t).seconds)
printf("%d\r",(*t).hscd)
//printf("Now,
press
‘e’
key
to
stop
the
clock…")
}
void
time_init()
//初始化时间
{
time.hours=time.minutes=time.seconds=time.hscd=0
}
void
get_total()
//计算总时间
{
total.hscd
=
cnt
%
100
cnt
/=
100
total.seconds
=
cnt
%
60
cnt
/=
60
total.minutes
=
cnt
%
60
cnt
/=
60
total.hours
=
cnt
}
int
main()
{
char
m
time_init()
cnt
=
0
fout
=
fopen("timeout.txt","w")
printf("按回车键开始计时!\n")
while(1)
{
m
=
getch()
if(m
!=
‘\r’)
//读入一个输入,如果是回车,那么跳出次循环
printf("输入错误,仅能输入回车键!\n")
else
break
}
printf("已经开始计时,但是你可以按回车键以分段计时!\n")
while(1)
{
if(kbhit())
//此处检查是否有键盘输入
{
m=getch()
if(m
==
‘\r’)
//如果等于回车,那么计时结束,跳出循环
break
else
if(m
==
‘
‘)
//如果等于空格,显示此次计时,初始化计时器
{
tmp
=
time
//记录上一段计时器结果
fprintf(fout,"%d:%d:%d:%d\n",tmp.hours,tmp.minutes,tmp.seconds,tmp.hscd)
//写入文件
time_init()
printf("\n")
}
else
{
printf("输入错误,仅支持输入回车键或者空格键!\n")
}
}
update(&time)
//更新计时器
display(&time)
//显示计时器时间
}
tmp
=
time
//输出最后一次即使结果,写入文件
fprintf(fout,"%d:%d:%d:%d\n",tmp.hours,tmp.minutes,tmp.seconds,tmp.hscd)
get_total()
//计算总的时间,显示,并写入文件
printf("\n总时间:%d:%d:%d:%d\n",total.hours,total.minutes,total.seconds,total.hscd)
fprintf(fout,"统计时间:%d:%d:%d:%d\n",total.hours,total.minutes,total.seconds,total.hscd)
fclose(fout)
printf("已经保存到当前目录下的timeout.txt文件中按任意键结束!")
getch()
}
timeout++ 意思是 timeout = timeout +1 意思是这个变量自加1;--同上;
timeout==0 返回一个bool值,如果两者相等返回真或者非0.不相等返回假或者0