输入你的生日 再输入某个年月日 用c语言 计算出它是你生命中的第几天
答案:2 悬赏:20 手机版
解决时间 2021-04-16 09:37
- 提问者网友:相思似海深
- 2021-04-16 03:42
输入你的生日 再输入某个年月日 计算出它是你生命中的第几天 用C语言写 高人来帮忙啊 有高分 写的好追分
最佳答案
- 五星知识达人网友:拜訪者
- 2021-04-16 05:00
#include <stdio.h>
#include <time.h>
#include <string.h>
int date2rawtime( struct tm* t, time_t* raw, int y, int m, int d )
{
memset( t, 0, sizeof( struct tm ) );
t->tm_year = y - 1900;
t->tm_mon = m - 1;
t->tm_mday = d;
*raw = mktime( t );
if( *raw < 0 )
return 0;
return 1;
}
int main()
{
int y,m,d,y1,m1,d1;
time_t diff, born, now;
struct tm tm1, tm2;
printf( "请输入你的生日(年/月/日):");
scanf("%d%d%d", &y,&m,&d);
printf( "请输入一个日期(年/月/日):" );
scanf("%d%d%d", &y1,&m1,&d1);
if ( !(date2rawtime( &tm1, &born, y, m, d )
&& date2rawtime( &tm2, &now, y1, m1, d1 ) ) ) {
printf( "数据有误!" );
return 1;
}
diff = now - born;
printf("这一天是你生命中的第 %d 天\n", diff / (60 * 60 * 24) + 1);
return 0;
}
#include <time.h>
#include <string.h>
int date2rawtime( struct tm* t, time_t* raw, int y, int m, int d )
{
memset( t, 0, sizeof( struct tm ) );
t->tm_year = y - 1900;
t->tm_mon = m - 1;
t->tm_mday = d;
*raw = mktime( t );
if( *raw < 0 )
return 0;
return 1;
}
int main()
{
int y,m,d,y1,m1,d1;
time_t diff, born, now;
struct tm tm1, tm2;
printf( "请输入你的生日(年/月/日):");
scanf("%d%d%d", &y,&m,&d);
printf( "请输入一个日期(年/月/日):" );
scanf("%d%d%d", &y1,&m1,&d1);
if ( !(date2rawtime( &tm1, &born, y, m, d )
&& date2rawtime( &tm2, &now, y1, m1, d1 ) ) ) {
printf( "数据有误!" );
return 1;
}
diff = now - born;
printf("这一天是你生命中的第 %d 天\n", diff / (60 * 60 * 24) + 1);
return 0;
}
全部回答
- 1楼网友:西岸风
- 2021-04-16 05:43
用switch语句很好写的。这是一个锻炼switch语句的好题目,不过我已经写了3次了……
就是由各判断瑞年,还有1,3,5,7,8,10,12月是31天,2月有点变化,其它是30天
用swich语句来做就可以了,自己看书学习,然后自己写,不断的调试,印象会很深刻的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯