12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package com.rf.psychological.utils;
- import cn.hutool.core.util.StrUtil;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- public class AgeUtil {
- public static Date parse(String strDate) throws ParseException {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- return sdf.parse(strDate);
- }
- //由出生日期获得年龄
- public static double getAge(String Birthday) throws Exception {
- Date birthDay = parse(Birthday);
- 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);
- double age = yearNow - yearBirth; //计算整岁数
- if (monthNow < monthBirth) {
- age -= 0.5;
- }else if (monthNow > monthBirth){
- age += 0.5;
- }
- /*if (monthNow <= monthBirth) {
- if (monthNow == monthBirth) {
- if (dayOfMonthNow < dayOfMonthBirth) age--;//当前日期在生日之前,年龄减一
- }else{
- age -= 0.5;//当前月份在生日之前,年龄减一
- }
- }*/
- return age;
- }
- public static void main(String args[]) {
- try {
- double age = getAge("2001-07-21");
- System.out.println("age=="+age);
- String text = " Hello World ";
- System.out.println(text);
- System.out.println(text.replaceAll("\\s", ""));
- System.out.println(StrUtil.cleanBlank(text));
- } catch (ParseException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
|