/*【程序14】 题目:输入某年某月某日,判断这一天是这一年的第几天? 1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。  */package test;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.regex.Matcher;import java.util.regex.Pattern;public class test {	public static void main(String args[]) throws IOException {		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));		System.out.println("请输入年月日:(格式2014-05-08)"); 		String input = br.readLine();		boolean flag = true;		Pattern pattern = Pattern.compile("^\\d{4}-\\d{2}-\\d{2}$");		while(flag)		{			Matcher matcher = pattern.matcher(input);			if(!matcher.find())			{				System.out.println("格式错误,请重新输入(格式2014-05-08)");				input = br.readLine();			}			else			{				flag = false;			}					}		final int []leap = {31,29,31,30,31,30,31,31,30,31,30,31};		final int []noleap = {31,28,31,30,31,30,31,31,30,31,30,31};		String date[] = input.split("-");		int year = Integer.parseInt(date[0]);		int month = Integer.parseInt(date[1]);		int day = Integer.parseInt(date[2]);		int result = 0;		if(year % 4 == 0)		{			for(int i = 0; i < month-1; i++)				result = result + leap[i];			result += day;		}		else		{			for(int i = 0; i < month-1; i++)				result = result + noleap[i];			result += day;		}		System.out.println("这是 "+year+"年的第 "+result+"天。");	}}