Tin's Blog

You are coming a long way, baby~Thinking, feeling, memory...

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  128 随笔 :: 0 文章 :: 221 评论 :: 0 Trackbacks
根据生日计算年龄可以通过Calendar实现。最简单可以考虑get(Calendar.DAY_OF_YEAR)来简单修正年龄,但是遇到生日在闰年的2月29之后,或者今年是闰年的2月29之后可能出现计算不准,误差一天。所以还是老实判断年月日好了。
public static int 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);
        
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 {
                    
//do nothing
                }
            } 
else {
                
//monthNow>monthBirth
                age--;
            }
        } 
else {
            
//monthNow<monthBirth
            
//donothing
        }

        
return age;
    }
posted on 2006-03-10 10:00 Tin 阅读(2600) 评论(0)  编辑  收藏 所属分类: Other Project

只有注册用户登录后才能发表评论。


网站导航: