(3)输入生日(年月日)及当前日期(年月日),求实足年龄(周岁); 变量定义为:int y1,m1,d1,y0,m0,d0,age; 说明:y1、m1、d1代表当前日期,y0、m0、d0代表生日,age求周岁(即考虑生日过了和没过2种情况,注意if-else的逻辑关系)
时间: 2024-09-26 09:05:04 浏览: 23
c语言输入年月日且能防止错误输入
在程序中计算一个人的实际年龄(周岁),可以按照以下步骤定义和处理变量:
1. 首先,将用户输入的生日(`y0`, `m0`, `d0`)和当前日期(`y1`, `m1`, `d1`)都转换为整数类型。
```java
int y0 = 1990; // 举例出生年份
int m0 = 6; // 举例出生月份
int d0 = 15; // 举例出生日期
int y1 = 2023; // 当前年份
int m1 = 8; // 当前月份
int d1 = 20; // 当前日期
```
2. 接下来,你需要判断实际的生日是否已经过去。如果当前日期小于等于生日日期,说明还没到今年的生日,年龄就应该是上一年的岁数加一。否则,直接计算两者的差值。
```java
// 判断生日是否已过
if (y1 * 1000 + m1 * 100 + d1 <= y0 * 1000 + m0 * 100 + d0) {
age = y1 - y0 - 1;
} else {
age = y1 - y0;
}
```
3. 如果你想确保年龄始终为正整数(因为周岁通常不会是负数),再检查一下计算结果:
```java
age = Math.max(age, 0); // 确保年龄是正数
```
阅读全文