使用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 + "歲");
  	}
  }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章