怎样用c语言编写以年月日的格式输入一个人的生日和当前日期,来计算这个人的年龄

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样用c语言编写以年月日的格式输入一个人的生日和当前日期,来计算这个人的年龄相关的知识,希望对你有一定的参考价值。

参考技术A 我给你写的不仅能显示年龄而且能显示距现在的天数。当前日期无需输入,程序自动调取系统日期。。运行过了没有任何问题。有什么问题可以交流下。

#include <stdio.h>
#include<time.h>
//计算给定的日期是本年的第几天
int count(int year,int month,int day)
int i,sum=0,flag=0;
int a[13]=0,31,28,31,30,31,30,31,31,30,31,30,31;
for(i=1;i<month;i++)
sum=a[i]+sum;
if(year%400==0||year%100!=0&&year%4==0)
flag=1;
if(flag==1&&month>2) sum++;
sum=sum+day;

return sum;



int main()

int year,month,day;
time_t t;
struct tm *local;
int sum=0,i;
t=time(NULL);
local=localtime(&t);
printf("今天的日期:%d年%d月%d日\n",local->tm_year+1900,local->tm_mon+1,local->tm_mday);
printf("输入生日:");
scanf("%d%d%d",&year,&month,&day);
for(i=year+1;i<local->tm_year+1900;i++)

if(i%400==0||i%100!=0&&i%4==0)
sum+=366;
else sum+=365;

if((year%400==0||year%100!=0&&year%4==0))
sum+=366-count(year,month,day);
else sum+=365-count(year,month,day);
sum+=count(local->tm_year+1900,local->tm_mon+1,local->tm_mday);
printf("%d年%d月%d日距今天有%d天\n",year,month,day,sum);
printf("\n你的年龄为%d\n",local->tm_year+1900-year);



c编程高手团队正在招新,有意者速速行动,一起学习,一起努力!

作业-实验一-生日

#include<stdio.h>
int main()
{
    int x,y,z;
    printf("请输入今天的日期,年月日用逗号分开");
    scanf("%d,%d,%d",&x,&y,&z);
    int a,b,c,e; 
    printf("请输入你的生日,格式:年-月-日");
    scanf("%d-%d-%d",&a,&b,&c);
    e=x-a;
    printf("你今年%d岁,你的生日是%d-%02d-%02d",e,a,b,c);
    return 0;
    
    
}

这个也是做过的了,没什么新增的知识点。

当然,这个代码有点问题,变量声明了两次,是个很不好的习惯(个人认为),故意留下来供自己看的。

另外也是一个不强壮的程序,如果生日和日期输反了的话,输出的东西就很有意思了。所以最好用if条件句限制一下。不过因为现在太晚了所以改良版做不完了,等等再补吧。其实改起来有点像“生日的下一天”那个程序呢。(其实是写好了大部分但出了点bug而且没考虑闰年)

突然觉得自己这种态度会被打零分啊。

老师请饶了我吧,现在真的有点晚了QAQ

以上是关于怎样用c语言编写以年月日的格式输入一个人的生日和当前日期,来计算这个人的年龄的主要内容,如果未能解决你的问题,请参考以下文章

以及距他下一次生日的天数。是C语言,不是C++

c语言编程 同一天生日:在一个有200人的大班级中,存在两个人生日相同的概率非常大。。

SQL Server2008中,生日字段为datetime类型,只获取月日,然后根据输入的天数判断好久生日,怎样实现?

c语言中用数组编程

谁知道怎么用C语言编写万年历啊

急!急!!急!!编写C语言程序,输入一人的生日,并输入当前的日期,输出该人的实际年龄。