使用JAVA实现的计算年龄以及判断闰年平年的方法

具体思路:

1、SimpleDateFormat:
是格式和语言环境敏感的方式解析一个类的具体日期。可以格式化(日期→文本),分析(文本→日期),和归一化。
2、Calendar:
抽象类,为一个特定的瞬间和一套 calendar fields如 YEAR, MONTH,
DAY_OF_MONTH, HOUR之间的转换提供了方法,操纵日历字段,例如获得下一周的日期。瞬间可以通过,从 Epoch偏移毫秒值表示,1970年1月1日00:00: 0 GMT(阳历)。
3、ParseException:
可以解析意外到达的一个错误的信号。
4、Scanner:
一个简单的文本扫描程序,可以使用正则表达式解析原始类型和字符串。
一个Scanner打破它的输入令牌使用分隔符模式,默认匹配空格。由此产生的令牌,然后可以转换成价值的不同类型使用不同的next方法。

代码如下:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class BirthDate {
	public static void main(String[] args) throws ParseException
	{	
		//创建Scanner
  		Scanner scanner = new Scanner(System.in);
  		System.out.println("生日(格式为yyyy-MM-dd):");
  		String BirthDate = scanner.nextLine(); 
  		//将字符串转换为Date类型
  		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  		Date date = new Date();
  		date = sdf.parse(BirthDate);
  		//使用calendar进行计算
  		Calendar calendar = Calendar.getInstance();
  		//获取当前时间毫秒值
  		long now = (new Date()).getTime();
  		long Birthdate = date.getTime();
  		long time = now - Birthdate;
  		int count = 0;
  		//时间换算
  		long days = time / 1000 / 60 / 60 / 24;
  		//判断闰年
  		int birthYear = Integer.parseInt((BirthDate.substring(0, 4)));
  		for (int i = calendar.get(Calendar.YEAR); i >= birthYear; i--)
   			if ((i % 4 == 0 && !(i % 100 == 0)) || (i % 400 == 0)) {
    				count++;
    		}
    		//加入闰年因素进行整理换算
  		int age = ((int) days - count) / 365;
  		System.out.println("到目前为止,活了" + age + "岁");
  	}
  }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章