- 简单判断输入日期是否合法
运行结果:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/4b22ebd6909d4472705938f1defa9e5d.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b7816fa1f537bcbdb6327ac041104317.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/83a1d1d16d6b8770c80f13ac80a6c813.png)
public class JudgeDate {
public static boolean judge(int y,int m,int d) {
boolean p=false;
if(m<1||m>12) {
System.out.print("月份不合法");
p=false;}
else if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) {
if(d<=31) {
p=true;}
else {
p=false;
System.out.print("日期不合法");
}
}
else if(m==2) {
if(y%400==0||(y%4==0&&y%100!=0)) {
if(d<=29) {
p=true;
}
else {
p=false;
System.out.print("日期不合法");
}
}
else {
if(d<=28){
p=true;
}
else {
p=false;
System.out.print("日期不合法");
}
}
}
else {
if(d<=30){
p=true;
}
else {
p=false;
System.out.print("日期不合法");
}
}
return p;
}
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner s=new Scanner(System.in);
int y=s.nextInt();
int m=s.nextInt();
int d=s.nextInt();
if(judge(y,m,d)) {
System.out.print(y+"/"+m+"/"+d);
}
}
}
- 编写一个代表日期的类,其中有代表年、月、日的3个属性,创建日期对象时要判断参数提供的年、月、日是否合法,不合法要进行纠正。“年”默认值为2000;月的值在1到12之间,默认值为1;日由一个对应12个月的整型数组给出合法值,特别地,对于2月,通常为28天,但闰年的2月最多29天,闰年是该年值为400的倍数,或者为4的倍数但不为100的倍数。将创建的日期对象输出时,年月日之间用“/”分隔。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b0dc44d1ba05ef8fabd48f2424024bfd.png)
public class JudgeDate {
static int year=2000;
static int month;
int day;
public JudgeDate(int y,int m,int d) {
year=y;
if(m<1||m>12) {
month=1;
}
else {
month=m;
}
day=checkDay(d);
}
public String toString() {
return year+"/"+month+"/"+day;
}
public static int checkDay(int d) {
int mouthDay[]= {31,28,31,30,31,30,31,31,30,31,30,31};
if(month==2&&d<=29&&(year%400==0||(year%4==0&&year%100!=0))){
return d;
}
else {
if(d>mouthDay[month-1]) {
d=mouthDay[month-1];
}
}
return d;
}
public static void main(String[] args) {
JudgeDate d1=new JudgeDate(2020,01,32);
System.out.println(d1);
JudgeDate d2=new JudgeDate(2020,12,24);
System.out.println(d2);
}
}