import java.util.Date;
import java.util.Scanner;
import java.util.regex.Pattern;
enum DatePart{yy,mm,dd};
public class Test19 {
public static void main(String[] args) {
Date d;
String str;
String[] temp = new String[3];
String reg;
int year, month, day;
Scanner scan = new Scanner(System.in);
reg = "\\d{4}-\\d{1,2}-\\d{1,2}"; //æ份ææ¥æå¯ä»¥æ¯1ä½æ2ä½
System.out.print("请è¾å
¥ä¸ä¸ªæ¥æï¼yyyy-mm-ddï¼ï¼");
str = scan.next(Pattern.compile(reg));
d = toDate(str);
if(d != null){
System.out.println(d.toLocaleString());
}
else{
System.out.println(str + "æ¯ä¸ä¸ªéæ³æ¥æ");
}
System.out.println(d.toLocaleString() + " çä¸ä¸ä¸ªæ¥ææ¯ " + dateAdd(DatePart.dd, d, 1).toLocaleString());
}
//å¤æä¸ä¸ªå¹´ä»½æ¯å¦æ¯é°å¹´
public static boolean isLeapYear(int year){
return (year%400==0 || (year%4==0 && year%100!=0));
}
//å°ä¸ä¸ªå符串转æ¢ä¸ºæ¥æï¼è¥éæ³ï¼è¿ånull
public static Date toDate(String source){
Date d;
try{
String[] temp = new String[3];
int year, month, day;
boolean flag = true;
temp = source.split("-");
year = Integer.parseInt(temp[0]);
month = Integer.parseInt(temp[1]);
day = Integer.parseInt(temp[2]);
if(month < 1 || month > 12 || day < 1 || day > 31){
return null;
}
switch(month){
case 4:
case 6:
case 9:
case 11:
if(day > 30){
flag = false;
}
break;
case 2:
if(year%400==0 || (year%4==0 && year%100!=0)){
if(day > 29){
flag = false;
}
}
else{
if(day > 28){
flag = false;
}
}
break;
}
if(flag == false){
return null;
}
d = new Date(year-1900, month-1, day);
return d;
}
catch(Exception e){
return null;
}
}
//è¿åæ¥ædå¢å n个partåä½çå¼
public static Date dateAdd(DatePart part, Date d, int n){
int year, month, day;
year = d.getYear();
month = d.getMonth();
day = d.getDate();
switch(part){
case yy:
d.setYear(year+n);
break;
case mm:
d.setMonth(month+n);
break;
case dd:
d.setDate(day+n);
break;
}
return d;
}
}
温馨提示:答案为网友推荐,仅供参考