题目链接
https://vjudge.net/problem/HRBUST-1555
思路
先需要判断年月日符合年份占四位,月份占两位,日占两位
然后利用SimpleDateFormat 定义格式,将输入进行转化,捕获异常,如果不是对应格式就输出到对应的异常
代码
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String str = sc.nextLine();
// 先需要判断年月日符合年份占四位,月份占两位,日占两位
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date;
try {
date = dateFormat.parse(str);
String[] split = str.split("-");
int year = Integer.parseInt(split[0]);
int mon = Integer.parseInt(split[1]);
int day = Integer.parseInt(split[2]);
if (year <= 999 || year >= 10000 || mon > 12 || mon <= 0
|| day <= 0 || day > 31) {
System.out.println("No");
}else {
System.out.println("Yes");
}
} catch (ParseException e) {
System.out.println("No");
}
}
sc.close();
}
}
说明
这个代码在提交的时候有问题,会报出Memory Limit Exceeded,输入输出都是正确的,不清楚哪里出了问题,只能先放这里.