输入一个学生的生日(输入格式年-月-日,如1980-1-1),再输入当前日期, 输出该生的实足年龄多少岁。(不必特别考虑闰年的特殊情况)
时间: 2024-10-21 09:06:21 浏览: 38
要计算一个人的实足年龄,你需要获取用户的出生日期(输入格式为`YYYY-MM-DD`),然后从当前日期中减去这个日期,得到的是天数差。由于一年通常有365天,你可以简单地用这个天数除以365来得到大致的年龄。这是一个简单的C程序示例:
```c
#include <stdio.h>
#include <time.h>
int main() {
// 获取当前时间
time_t now = time(NULL);
// 将时间戳转换为tm结构体以便于操作
struct tm *current_time = localtime(&now);
int current_year = current_time->tm_year + 1900; // 当前年份加1900
int current_month = current_time->tm_mon + 1; // 当前月份加1 (因为C中的月份是从0开始计数)
int current_day = current_time->tm_mday;
printf("请输入学生的出生日期(格式:YYYY-MM-DD): ");
char input_date[11];
scanf("%s", input_date); // 用户输入
// 解析输入日期
int birth_year, birth_month, birth_day;
sscanf(input_date, "%d-%d-%d", &birth_year, &birth_month, &birth_day);
// 计算年龄
int age = current_year - birth_year;
if (current_month < birth_month || (current_month == birth_month && current_day < birth_day)) {
age--;
}
printf("该生的实足年龄是 %d 岁。\n", age);
return 0;
}
```
在这个程序中,我们首先获取当前时间并将其转换为便于处理的时间结构体。然后从用户那里获取出生日期,解析后与当前日期进行比较,如果输入的日期还未到今年,就减一岁。
请注意,这种方法只给出了大约的年龄,没有考虑实际的日期差异,比如每年的天数可能不是365天(闰年有366天)。如果你需要更精确的结果,特别是对于那些出生日期接近当年年底的人来说,你可能需要引入闰年规则来进行调整。然而,对于日常应用来说,这种简化版本已经足够了。
阅读全文