`
vivus
  • 浏览: 116189 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

计算年龄

    博客分类:
  • java
 
阅读更多

	/**
	 * This Method is unit tested properly for very different cases , taking
	 * care of Leap Year days difference in a year, and date cases month and
	 * Year boundary cases (12/31/1980, 01/01/1980 etc)
	 */
	public static int getAge(Date dateOfBirth, Date toDate) {
		if (dateOfBirth.after(toDate)) {
			throw new IllegalArgumentException("the parameter dateOfBirth[" + dateOfBirth
					+ "] can not be later than toDate[" + toDate + "]");
		}
		Calendar toDateCalendar = Calendar.getInstance();
		Calendar birthCalendar = Calendar.getInstance();
		birthCalendar.setTime(dateOfBirth);
		toDateCalendar.setTime(toDate);
		int age = toDateCalendar.get(Calendar.YEAR) - birthCalendar.get(Calendar.YEAR);
		// If birth date is greater than todays date (after 2 days adjustment of
		// leap year) then decrement age one year
		if ((birthCalendar.get(Calendar.MONTH) > toDateCalendar.get(Calendar.MONTH))
				|| (birthCalendar.get(Calendar.DAY_OF_YEAR)
						- toDateCalendar.get(Calendar.DAY_OF_YEAR) > 3)) {
			age--;
			// If birth date and todays date are of same month and birth day of
			// month is greater than todays day of month then decrement age
		} else if ((birthCalendar.get(Calendar.MONTH) == toDateCalendar.get(Calendar.MONTH))
				&& (birthCalendar.get(Calendar.DAY_OF_MONTH) > toDateCalendar
						.get(Calendar.DAY_OF_MONTH))) {
			age--;
		}
		return age;
	}

	public static int age(Date birthDate, Date toDate) {
		if (birthDate.after(toDate)) {
			throw new IllegalArgumentException("the parameter birthDate[" + birthDate
					+ "] can not be later than toDate[" + toDate + "]");
		}
		Calendar cal = Calendar.getInstance();
		Calendar now = Calendar.getInstance();
		cal.setTime(birthDate);
		now.setTime(toDate);
		int res = now.get(Calendar.YEAR) - cal.get(Calendar.YEAR);
		if ((cal.get(Calendar.MONTH) > now.get(Calendar.MONTH))
				|| (cal.get(Calendar.MONTH) == now.get(Calendar.MONTH) && cal
						.get(Calendar.DAY_OF_MONTH) > now.get(Calendar.DAY_OF_MONTH))) {
			res--;
		}
		return res;
	}

分享到:
评论

相关推荐

    delphi 通过日期计算年龄

    在本教程中,我们将深入探讨如何使用 Delphi 的日期函数来计算年龄。 首先,我们需要获取用户的出生日期。这通常是从数据库、用户输入或其他数据源获取的。假设我们已经有了一个 `TDate` 类型的变量 `BirthDate` ...

    PB计算年龄函数

    powerbuilder技术开发,根据转入生日,自动计算年龄。

    excel计算年龄汇总

    下面将详细介绍两种在Excel中计算年龄的方法。 **方法一:使用DATEDIF()函数** DATEDIF()函数是Excel中的一个隐藏函数,它能够计算两个日期之间的差异,支持以年、月、日为单位。以下是使用DATEDIF()函数计算年龄...

    SQLServer 根据生日计算年龄

    SQLServer 根据生日计算年龄

    C#根据身份证号码计算年龄和性别

    - 注意:计算年龄时要考虑是否已经过了生日,如果未过,则年龄减一。 3. **判断性别**: - 访问身份证号码的第17位,如果是奇数,表示男性;偶数则表示女性。 - 可以使用`%`(取模)运算符来检查第17位是否为...

    excel中知道出生年月如何自动计算年龄

    在Excel中,计算年龄是一项常见的任务,特别是在处理个人资料或者进行数据分析时。下面将详细介绍几种在Excel中根据出生年月计算年龄的方法。 1. **日期格式的出生年月计算年龄**: 如果出生年月在A1单元格是日期...

    iOS计算年龄的封装

    ### iOS计算年龄的封装知识点详解 #### 一、概述 在iOS开发中,经常会遇到需要根据用户的出生日期来计算其年龄的需求。为了提高代码的复用性和可维护性,可以将这一功能进行封装,形成一个方便调用的方法。本文将...

    kettle中使用js计算年龄.txt

    kettle中使用js计算年龄

    Oracle计算年龄(精确到秒)

    通过入参 生日 ,计算日期(默认sysdate),计算年龄 精确到秒

    sql语句 根据身份证号计算年龄

    sql 语句 根据身份证号计算年龄,oracl数据库可以直接运行

    通过datepicker计算年龄

    本主题将深入探讨如何利用datepicker来计算年龄,这是一个在Web开发、移动应用开发等领域经常遇到的问题。 首先,让我们了解什么是datepicker。日期选择器是一个交互式的控件,它提供了一个友好的图形用户界面,...

    计算年龄(采用关机技术)

    3. **JavaScript**:JavaScript是网页动态交互的关键,它负责处理用户的输入,计算年龄,并更新显示的结果。在这个应用中,JavaScript函数会被绑定到按钮的点击事件上,当用户选择日期并点击按钮后,这些函数会执行...

    SQL函数 根据出生日期精确计算年龄

    sql函数 可用于pb调用,根据生日日期,自动精确计算年龄。返回格式为xx岁xx月xx天 不受闰年影响

    根据生日计算年龄JS

    ### 根据生日计算年龄的JavaScript方法 在日常开发中,我们经常需要处理与日期相关的逻辑,例如根据用户的出生日期来计算其年龄。这在很多应用场景下都非常实用,比如用户注册、年龄验证等功能。下面将详细介绍如何...

    SQLSERVER计算年龄(岁月天).txt

    SQLSERVER计算年龄(岁月天),可以精确到岁,月,几月几天。

    java根据日期计算年龄和星期

    ### Java根据日期计算年龄与星期知识点详解 #### 一、概述 在Java中处理日期时,经常需要根据特定的日期来计算出年龄或者确定该日期是星期几。这对于开发涉及日期处理的应用程序非常实用。本文将详细介绍如何使用...

    日期选择,可以自动计算年龄和星座

    "日期选择,可以自动计算年龄和星座"这个标题所指的,是一个能够帮助用户选择出生日期,并根据所选日期自动计算出年龄和星座的功能。这种功能在移动应用中很常见,它提升了用户体验,减少了用户的输入负担。 首先,...

    Java根据生日计算年龄算法

    Java根据生日计算年龄算法 不满一年计算月份 不满一月计算天数

    QT身份证、生日计算年龄(包含源代码)

    1、支持18、16位身份证号码,支持2、4、6、8位生日格式(例:88,1988,198804,...3、最小年龄和最大年龄用来设置输出年龄的范围。 4、计算日期默认为系统日期,可设置任意日期(例:2019年底须计算2020年体检单位日期)

    sql用函数计算年龄

    在sqlserver中采用存储过程或函数计算年龄/周岁

Global site tag (gtag.js) - Google Analytics