周岁、虚岁、实岁

有人说,在全世界,或许只有中国人有两个年龄,一个周岁,一个虚岁。虚岁是中国的传统概念,所以是以农历年份来划分的。


虚岁(又叫毛岁):出生时为一岁,每到春节长一岁。 
周岁:出生时为零岁,每到公历生日(不是生日第二天)长一岁。


还有个实岁:跟周岁相仿,只是按农历算


中国传统计算年龄的方法。婴儿出生时就记为一岁,以后每过一个春节增加一岁,这样虚岁往往比周岁要大一到两岁,成为虚一岁或虚两岁。婴儿出生时即记为一岁是因为胎儿在母体内受孕到出生有接近一年的时间。公历元旦后、农历年末、春节前出生的孩子,如腊月出生,一过春节就记为两岁,因此比周岁要大近两岁。
这个看法,我还找不到“虚岁的称呼确是近代相对于周岁而产生的”或“我国古代只用虚岁”之类来否定它。相反,国人做大寿“男进女满”的传统(以五十大寿为例:男人在刚进入第五十年那个生日时做,而女人在出生后第五十个生日、即满五十年时做)似乎能证明实岁的存在,只是古人更注重虚岁。 
我还认为虚岁的算法并不是尚无统一标准(只是被错误算法搅乱了),因为字面上虚岁和实岁就很好解释:虚岁的意思是你名义上生存了多少年了,实岁的意思是你已经生存了多久了(有时说几岁零几个月或几岁半也是这个意思)。 
除此之外,老百姓中间对于年龄的算法可谓五花八门,都是出于曲解或图方便,有的还很复杂(例如上半年怎么算下半年又怎么算)。其中一种这样算:用现在的年数减去出生时的年数,显然这是最方便的错误算法,尽管它目前事实上已成为最流行的算法,但它没有说得通的意思,永远不会被“扶正”。 
年龄的计算方法:①虚岁年龄。中国在习惯上常用的年龄计算方法,按出生后所经历的日历年头计算,即生下来就算1岁,以后每过一次新年便增加1岁。一般按农历新年算,也有按公历算的。


②周岁年龄。又称实足年龄,指从出生到计算时为止,共经历的周年数或生日数。


③确切年龄。指从出生之日起到计算之日止所经历的天数。它比周岁年龄更为精确地反映人们实际生存的时间,但由于其统计汇总时较为繁琐,故人口统计中使用甚少。在实际生活中,人们除对不满1周岁的婴儿,特别是不满1个月的新生儿常常按月日计算外,一般不按日计算确切年龄。


转:中国虚岁的说法


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是Python代码实现: ``` from datetime import datetime id_number = input("请输入身份证号:") if len(id_number) != 18: print("身份证号有误") else: birth_year = int(id_number[6:10]) now_year = datetime.now().year age = now_year - birth_year print("该身份证号对应的年龄为:%d" % age) ``` 代码解析: 1. 首先通过 `input()` 函数获取用户输入的身份证号; 2. 然后通过 `len()` 函数检查身份证号长度是否为 18,如果不是则输出提示信息; 3. 如果身份证号长度为 18,则从身份证号中提取出出生年份,并获取当前年份; 4. 最后求出虚岁(当前年份减去出生年份),并输出结果。 注意事项: - 该程序只是简单地判断身份证号的长度是否为 18,并没有对身份证号进行更加严格的校验; - 身份证号的前两位代表的不一定是所在省份,因为有些地区的行政区划代码已发生变化; ### 回答2: 以下是根据您给出的需求编写的程序。 ```python import datetime def calculate_age(id_number): try: birth_year = int(id_number[6:10]) birth_month = int(id_number[10:12]) birth_day = int(id_number[12:14]) birthday = datetime.date(birth_year, birth_month, birth_day) today = datetime.date.today() age = today.year - birthday.year - ((today.month, today.day) < (birthday.month, birthday.day)) return age except ValueError: return "身份证号有误" id_number = input("请输入身份证号:") if len(id_number) != 18: print("身份证号有误") else: age = calculate_age(id_number) if isinstance(age, int): print("年龄:", age) else: print(age) ``` 程序首先让用户在控制台输入一个身份证号。如果身份证号的长度不等于18,则输出“身份证号有误”。如果身份证号的长度为18,则调用`calculate_age`函数计算出对应的年龄。 `calculate_age`函数中,首先提取身份证号中的出生年月日。然后用当前日期减去出生日期,得到一个年龄的时间差。最后根据时间差计算出对应的年龄。如果身份证号中的出生年月日不是合法的整数,则捕捉`ValueError`异常,返回字符串“身份证号有误”。 最后,程序根据`calculate_age`函数的返回值输出结果。如果返回值是一个整数,则表示计算出了年龄;如果是字符串,则表示身份证号有误。 ### 回答3: 确定用户输入身份证号的长度是否为18位,可使用len()函数。根据输入的身份证号的第7到14位,即出生日期信息,计算年龄。具体的程序如下所示: ```python import datetime id_number = input("请输入身份证号:") # 检查身份证号长度 if len(id_number) != 18: print("身份证号有误") else: birth_year = int(id_number[6:10]) birth_month = int(id_number[10:12]) birth_day = int(id_number[12:14]) # 获取当前日期 now = datetime.datetime.now() current_year = now.year current_month = now.month current_day = now.day # 计算虚岁年龄 age = current_year - birth_year # 如果还未到今年的出生月份或日期,则减1岁 if (birth_month > current_month) or (birth_month == current_month and birth_day > current_day): age -= 1 print("年龄(虚岁):", age) ``` 以上程序中,先使用input()函数让用户在控制台输入身份证号,并将输入存储在id_number变量中。然后使用if语句检查身份证号长度是否为18位,如果不是,则输出"身份证号有误"。如果长度为18位,则将其第7到14位分别提取出来,转换为整型。接下来,使用datetime模块获取当前的年份、月份和日期,计算年龄时,先将当前年份减去出生年份。然后检查出生月份和日期是否在当前月份和日期之后,如果是,则说明还未到今年的出生月份或日期,年龄减1岁。最后,输出计算得到的年龄(虚岁)。 请注意,以上程序只是示例,仅计算了虚岁年龄,并未考虑具体的月份和日期计算方法,实际情况可能较复杂。在实际应用中,可能需要更精确的算法来计算年龄。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值