输入一个学生的生日(输入格式年-月-日,如1980-1-1),再输入当前日期, 输出该生的实足年龄多少岁。(不必特别考虑闰年的特殊情况),使用简单的代码来进行编写
时间: 2024-10-21 09:02:12 浏览: 13
祖国妈妈生日快乐-童心儿童类的ppt
在C语言中,要计算一个人的实足年龄,你可以使用标准库中的time.h头文件,它包含了处理时间戳的功能。以下是一个简单的程序示例,演示了如何获取当前时间并根据用户的出生日期计算年龄:
```c
#include <stdio.h>
#include <time.h>
// 定义结构体存储学生信息
struct Student {
int year;
int month;
int day;
};
// 函数声明
int calculate_age(const struct Student* birth);
int main() {
struct Student student;
time_t now; // 当前时间的时间戳
struct tm *current_time, *birth_time;
printf("请输入学生的出生日期 (格式: 年-月-日): ");
scanf("%d-%d-%d", &student.year, &student.month, &student.day);
// 获取当前时间
current_time = localtime(&now);
// 将出生日期转换为时间戳(tm结构)
birth_time = localtime((time_t) make_date(student.year, student.month, student.day));
// 计算年龄
int age = calculate_age(&student);
printf("学生的实际年龄是 %d 岁。\n", age);
return 0;
}
// 计算年龄的函数
int calculate_age(const struct Student* birth) {
// 时间差以秒为单位
long diff = difftime(*birth_time, *current_time);
// 除以365天得到大致的年龄,这里不精确到分或秒
return diff / (60 * 60 * 24 * 365);
}
```
在这个代码里,`difftime()`函数用于计算两个时间戳之间的差异,然后我们用这个差值除以一年的总秒数来估算年龄。这只是一个非常基础的计算方法,实际年龄可能会因为每年天数变化而略有所误差。
阅读全文