`

关于根据出生日期计算年龄的问题(js,java)

阅读更多
js中计算年龄
/**
* 将生日转换成年龄
*/
function birthDayToAge(){
var aDate=new Date();
var thisYear = aDate.getFullYear();
var thisMonth = aDate.getMonth()+1;
var thisDay = aDate.getDate();
var currentDate = thisYear+"-"+thisMonth+"-"+thisDay;
var oTable = document.getElementById('familyMember');
var message = $("#message").html();
if(message != null && message != "" ){
return null;
}
for(i=1;i<oTable.rows.length;i++){
    var cell = oTable.rows[i].cells[3].innerHTML;
    if(cell!="" && cell != null){
    age = daysBetween(currentDate,cell.trim());
    oTable.rows[i].cells[3].innerHTML = age;
    }else{
    oTable.rows[i].cells[3].innerHTML = "";
    }
}
}

/** 计算两个日期间的年龄  */
function daysBetween(DateOne,DateTwo){  
    var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-')); 
    var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1); 
    var OneYear = DateOne.substring(0,DateOne.indexOf ('-')); 
 
    var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-')); 
    var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1); 
    var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-')); 
 
    var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000/365);  
   var age = Math.abs(cha)+1+"";
    return age.split(".")[0];
}


java中计算年龄
/** 计算年龄 */
public  String getAge(Date birthDay) throws Exception {
        Calendar cal = Calendar.getInstance();

        if (cal.before(birthDay)) {
            throw new IllegalArgumentException(
                "The birthDay is before Now.It's unbelievable!");
        }

        int yearNow = cal.get(Calendar.YEAR);
        int monthNow = cal.get(Calendar.MONTH)+1;
        int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);
       
        cal.setTime(birthDay);
        int yearBirth = cal.get(Calendar.YEAR);
        int monthBirth = cal.get(Calendar.MONTH);
        int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);

        int age = yearNow - yearBirth;

        if (monthNow <= monthBirth) {
            if (monthNow == monthBirth) {
                //monthNow==monthBirth
                if (dayOfMonthNow < dayOfMonthBirth) {
                    age--;
                }
            } else {
                //monthNow>monthBirth
                age--;
            }
        }

        return age +"";
    }
分享到:
评论
4 楼 RonQi 2015-10-24  
受博文启发,自己实现了下
	/**
	 * <pre>
	 * 从生日计算年龄:
	 * yearOfAge: 年龄超过1年的,计算满几年;
	 * monthOfAge: 年龄不满1年的,计算满几个月;
	 * dayOfAge: 年龄不满1月的,计算满几天;
	 * </pre>
	 * @param birthday
	 * @return 返回的Map中的key包含:yearOfAge, monthOfAge, dayOfAge
	 */
	public static Map<String, Integer> calAge(Date birthday){
		Map<String, Integer> result = new HashMap<String, Integer>();
		int yearOfAge = 0;
		int monthOfAge = 0;
		int dayOfAge = 0;
		
		Calendar cal = Calendar.getInstance();
		long nowMillis = cal.getTimeInMillis();
		long birthdayMillis = birthday.getTime();
		if(nowMillis < birthdayMillis){
			result.put("yearOfAge", yearOfAge);
			result.put("monthOfAge", monthOfAge);
			result.put("dayOfAge", dayOfAge);
			return result;
		}

		int yearNow = cal.get(Calendar.YEAR);
		int monthNow = cal.get(Calendar.MONTH) + 1;
		int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);

		cal.setTime(birthday);
		int yearBirth = cal.get(Calendar.YEAR);
		int monthBirth = cal.get(Calendar.MONTH) + 1;
		int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);

		if(yearNow == yearBirth){
			monthOfAge = monthNow - monthBirth;
			if(monthNow == monthBirth){
				dayOfAge = dayOfMonthNow - dayOfMonthBirth;
			}else{
				if(dayOfMonthNow < dayOfMonthBirth){
					monthOfAge--;
				}
				if(monthOfAge == 0){
					dayOfAge = (int)TimeUnit.MILLISECONDS.toDays(nowMillis - birthdayMillis);
				}
			}
		}else{
			yearOfAge = yearNow - yearBirth;
			if(monthNow < monthBirth){
				yearOfAge--;
				if(yearOfAge == 0){
					monthOfAge = 12 - monthBirth + monthNow;
					if(dayOfMonthNow >= dayOfMonthBirth){
						monthOfAge++;
					}
				}
			}else if(monthNow == monthBirth){
				if(dayOfMonthNow < dayOfMonthBirth){
					yearOfAge--;
					if(yearOfAge == 0){
						monthOfAge = 11;
					}
				}
			}
		}

		result.put("yearOfAge", yearOfAge);
		result.put("monthOfAge", monthOfAge);
		result.put("dayOfAge", dayOfAge);
		return result;
	}
3 楼 accphc 2015-06-17  
/**
	 * 计算年龄
	 * @param birth yyyy-MM-dd
	 * @return
	 */
	public static int calcAge(String birth){
		Date nowDate= new Date();
		Date birthDate= parse(birth, "yyyy-MM-dd");
		Calendar flightCal= Calendar.getInstance();
		flightCal.setTime(nowDate);
		Calendar birthCal= Calendar.getInstance();
		birthCal.setTime(birthDate);
		
		int y= flightCal.get(Calendar.YEAR)-birthCal.get(Calendar.YEAR);
		int m= flightCal.get(Calendar.MONTH)-birthCal.get(Calendar.MONTH);
		int d= flightCal.get(Calendar.DATE)-birthCal.get(Calendar.DATE);
		if(y<0){
			throw new RuntimeException("您老还没出生");
		}
		
		if(m<0){
			y--;
		}
		if(m>=0&&d<0){
			y--;
		}

		return y;
	}
2 楼 小迹_ 2014-12-18  
生日获取月份时为什么不+1?
1 楼 桃花源记 2013-03-14  
虽然不难,但是归纳也需要时间的,赞一个!最后一个age++

相关推荐

    f_get_age(出生日期计算年龄).rar_age 日期_f_get__uf_GetAge_Basy_出生日期计算年龄

    我们将围绕标题"f_get_age(出生日期计算年龄).rar_age 日期_f_get__uf_GetAge_Basy_出生日期计算年龄"和描述"根据出生日期计算当天日期的年龄,传入出生日期、当天日期即可"中的关键概念进行解析。 首先,让我们...

    年龄计算器 精确计算出您的时间段

    年龄计算器是一种应用软件,主要功能是根据用户输入的出生日期,精确地计算出从出生到当前日期的时间差,通常以年、月、日的形式展示。这个工具不仅适用于个人使用,了解自己的年龄,还可以用于各种需要计算年龄差的...

    详细计算你的年龄.rar

    2. **用户输入处理**:为了计算年龄,程序需要获取用户的出生日期。这可能通过用户界面(UI)的输入字段实现,或者从数据库、JSON文件、CSV文件等数据源中读取。对于用户输入的验证也很重要,确保输入的日期格式正确...

    java 判断年龄

    在给定的Java代码示例中,我们看到了一个关于如何在Java中判断年龄的基本实现,涉及到类、对象、私有属性、方法以及函数调用。下面将详细解析这些知识点: ### 1. 类与对象 #### BirthDate类 `BirthDate`类用于...

    计算天数和查询未来天数的软件

    例如,用户输入自己的出生日期和其他日期,软件会返回两者之间的天数差,这有助于计算年龄或者评估某个事件距今的时间。在实现这个功能时,软件需要确保日期格式的一致性,并处理闰年和不同月份天数不同的情况,因为...

    生命计算器

    这个工具通常基于当前日期与用户出生日期之间的差值来进行计算,为用户提供一种简单直观的方式来了解他们生活了多久。下面将详细讨论相关知识点: 1. **日期和时间处理**:在编程中,处理日期和时间是一项基础任务...

    CalculatorService.zip_The Age

    《计算器服务:计算年龄》 在信息技术领域,我们经常需要处理各种数据,其中包括个人的出生日期,进而计算出他们的年龄。在这个名为"CalculatorService.zip_The Age"的压缩包文件中,我们可以推测它包含了一个...

    Java基础_综合应用题

    - 根据用户的出生日期计算其年龄,并按照不同的年龄段统计人数。 - 统计结果展示在统计界面中。 #### 四、技术要点总结 - **数据库操作**: - SQL建表语句编写与执行。 - 数据的增删改查操作实现。 - 使用SQL...

    java程序员个人简历05.docx

    姓名、性别、年龄、出生日期、婚姻状况、身高、目前所在地、户口所在地、工作年限、英语水平、英语级别、计算机、第二外语、水平、最高学历、专业、目前岗位、软件工程师/程序员、目前月薪、目前行业、计算机软件及...

    基于java的宠物领养系统设计与实现+毕业论文

    4. **生日**:用户的出生日期,可用于计算年龄或推送生日祝福等。 5. **所在城市**:用户居住的城市,对于同城领养或者活动推送具有重要意义。 6. **个人简介**:用户自我介绍的文字,有助于其他用户了解其性格、...

    基于javascript实现根据身份证号码识别性别和年龄

    在JavaScript编程中,有时我们需要根据身份证号码来获取个人的基本信息,如性别和年龄。这篇文章将详细解释如何通过JavaScript实现这个功能。身份证号码是中国公民身份的主要标识,它包含了个人的出生日期和其他信息...

    精典IT个人简历(java中文).doc

    * 性别、年龄、出生日期、民族、籍贯等个人信息 知识点二:教育背景 * 武汉职业技术学院计算机软件技术专业(2007-2010) * 武汉卡信维信息技术有限公司 JAVA 高端架构(2009-2010) 知识点三:工作经历 * 武汉 ...

    age-calculator:年龄计算器

    在IT行业中,这类应用通常属于时间管理和个人信息管理类别,它们能够根据用户输入的出生日期,快速地计算出当前的年龄信息。 这个计算器遵循了MIT许可证,这是一份非常宽松的开源软件许可证,允许用户自由地使用、...

    AgeInMinutes:一款Android应用,可在几分钟内告知人的年龄

    它与Java无缝集成,可以在Java虚拟机(JVM)上运行,也可以编译成JavaScript或者原生代码。Kotlin的语法简洁明了,支持函数式编程特性,如高阶函数、lambda表达式和类型推断,这使得Kotlin在Android开发中广受欢迎。...

    高校人事管理系统-适合毕设,大作业、实训项目包含完整源码以及数据库文件.rar

    1. 员工表:存储员工的基本信息,如ID、姓名、性别、出生日期、入职日期等。 2. 职位表:记录职位信息,如ID、职位名称、级别、薪资范围等。 3. 考勤表:记录员工每天的出勤状态,如ID、员工ID、日期、签到时间、签...

    数据库课设 人事档案管理系统

    录入与编辑模块是系统的核心部分,允许管理员录入员工的基本信息,如姓名、性别、出生日期、入职时间、岗位、工资等。同时,该模块还应支持对已存档案的编辑和更新,以适应人事变动。设计时,需要考虑到数据的完整性...

    实用学生管理系统项目

    1. 学生信息管理:系统能够存储并管理包括姓名、学号、班级、性别、出生日期等在内的学生基本信息,同时支持信息的增删改查操作,确保数据的完整性和准确性。 2. 成绩管理:系统提供成绩录入、查询、统计等功能,...

    员工信息管理系统

    1. 员工信息录入:录入员工的基本信息,如姓名、性别、出生日期、入职时间、职位等。 2. 信息查询:快速查找和筛选特定员工的信息,支持多种条件组合查询。 3. 信息更新:及时更新员工变动信息,如晋升、调岗、离职...

    开发jsp项目的注释模板

    * @param birthDate - 用户的出生日期 * @return 用户的年龄 */ public int calculateAge(String birthDate) { // 代码实现 } %&gt; ``` 6. **自动化工具**:现代IDE如Eclipse、IntelliJ IDEA等,提供了自动...

Global site tag (gtag.js) - Google Analytics