c语言出生年月转周岁
时间: 2024-11-10 14:12:24 浏览: 7
C语言数字ASCII转换成16进制互转.c
5星 · 资源好评率100%
在C语言中,计算一个人从出生日期到当前日期的周岁通常涉及到当前时间的获取和日期计算。这里是一个简单的示例,假设已经有了一个包含出生日期的结构体,如`struct birthday`,包括`year`, `month`, 和`day`字段:
```c
#include <stdio.h>
#include <time.h>
// 假设有一个生日结构体
typedef struct {
int year;
int month;
int day;
} birthday;
// 函数来计算周岁
int calculate_age(const birthday* birth) {
time_t now = time(0);
tm* current_time = localtime(&now);
// 获取当前年份、月份和日
int current_year = current_time->tm_year + 1900;
int current_month = current_time->tm_mon + 1;
int current_day = current_time->tm_mday;
// 如果出生日期还未到来,年龄减一
if (current_year > birth->year || (current_year == birth->year && current_month > birth->month) ||
(current_year == birth->year && current_month == birth->month && current_day >= birth->day)) {
return current_year - birth->year - 1; // 当前年份还没到,减一岁
} else {
return current_year - birth->year; // 否则正常减去岁数
}
}
int main() {
birthday birth = {1990, 5, 10}; // 假设这个人的生日是1990年5月10日
int age = calculate_age(&birth);
printf("出生年月:%d-%02d-%02d, 现在周岁:%d\n", birth.year, birth.month, birth.day, age);
return 0;
}
```
在这个例子中,`calculate_age`函数会根据当前时间和给定的出生日期计算周岁。
阅读全文