c语言输入一个学生的生日,并输入当前日期,求出该学生的年龄
时间: 2023-05-16 16:07:47 浏览: 373
可以使用time.h头文件中的函数来计算年龄。首先,需要将输入的生日和当前日期转换为time_t类型的时间戳,然后计算两个时间戳之间的差值,最后将差值转换为年龄。
下面是一个示例代码:
```c
#include <stdio.h>
#include <time.h>
int main() {
// 输入生日和当前日期
int birth_year, birth_month, birth_day;
printf("请输入学生的生日(年 月 日):");
scanf("%d %d %d", &birth_year, &birth_month, &birth_day);
int current_year, current_month, current_day;
printf("请输入当前日期(年 月 日):");
scanf("%d %d %d", ¤t_year, ¤t_month, ¤t_day);
// 将生日和当前日期转换为time_t类型的时间戳
struct tm birth_time = {0};
birth_time.tm_year = birth_year - 1900;
birth_time.tm_mon = birth_month - 1;
birth_time.tm_mday = birth_day;
time_t birth_timestamp = mktime(&birth_time);
struct tm current_time = {0};
current_time.tm_year = current_year - 1900;
current_time.tm_mon = current_month - 1;
current_time.tm_mday = current_day;
time_t current_timestamp = mktime(¤t_time);
// 计算年龄
double diff_seconds = difftime(current_timestamp, birth_timestamp);
int age = (int)(diff_seconds / (365.25 * 24 * 60 * 60));
// 输出结果
printf("该学生的年龄为:%d岁\n", age);
return 0;
}
```
注意,这个计算年龄的方法并不是完全准确的,因为它假设每年都是365.25天,而实际上每年的天数是有微小差异的。但是,这个方法在大多数情况下都是足够准确的。
阅读全文