package MyJava10;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args)
{
int a,b,c;
String as,bs,cs;
System.out.println("enter the date");
Scanner sc=new Scanner(System.in);
String s=sc.next();
as=s.substring(0,2);
bs=s.substring(3,5);
cs=s.substring(6);
a=Integer.valueOf(as);
b=Integer.valueOf(bs);
c=Integer.valueOf(cs);
Calendar cal=new GregorianCalendar();
cal.setLenient(false);
cal.set(c, b-1, a);
System.out.println(cs+'/'+bs+'/'+as);
}
}
如您所见,我想知道某个日期是否有效。我已编码为给定并已设置
cal.setLenient(false);
。
不幸的是,当我提供无效日期时,不会显示任何错误。
任何形式的帮助都会非常明显。谢谢 :) 对不起,其他人之前已经问过这个问题;如果是这样,提供URL将有很大帮助。
答案 0 :(得分:0)
您可以使用此功能检查日期有效性:
public static String DATE_FORMAT = "MM/dd/yyyy";
public static boolean isDateValid(String date) {
try {
DateFormat df = new SimpleDateFormat(DATE_FORMAT);
df.setLenient(false);
df.parse(date);
return true;
} catch (ParseException e) {
return false;
}
}
您可以根据需要更改DATE_FORMAT
(documentation)。然后你的主要是:
public static void main(String[] args) {
System.out.println("Enter the date:");
Scanner scanner = new Scanner(System.in);
String date = scanner.next();
if (isDateValid(date))
System.out.println("Valid date");
else
System.out.println("Invalid date");
scanner.close();
}
答案 1 :(得分:0)
如果您这样做,
Calendar cal=new GregorianCalendar();
cal.setLenient(false);
cal.set(2014, 8, 32);
System.out.println(cal.getTime());
你会得到
Exception in thread "main" java.lang.IllegalArgumentException: DAY_OF_MONTH
at java.util.GregorianCalendar.computeTime(GregorianCalendar.java:2316)
at java.util.Calendar.updateTime(Calendar.java:2265)
at java.util.Calendar.getTimeInMillis(Calendar.java:1049)
at java.util.Calendar.getTime(Calendar.java:1022)
at Question.main(Question.java:39)