编写一个代表日期的类,其中有代表年、月、日的3个属性,创建日期对象时要判断参数提供的年、月、日是否合法,不合法要进行纠正。“年”默认值为2000;月的值在1到12之间,默认值为1;日由一个对应12个月的整型数组给出合法值,特别地,对于2月,通常为28天,但闰年的2月最多29天。闰年是该年值为400的倍数,或者为4的倍数但不为100的倍数。将创建的日期对象输出时,年月日之间用“/”分隔。
package Fg;
import java.util.Scanner;
class Date//日期类
{
private int year=2000;
private int month=1;
private int day=1;
public Date(int year,int month,int day)
{
if(year>=1&&year<=2020)
{
this.year=year;
if(month>=1&&month<=12)
{
this.month=month;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
if(day>=1&&day<=31)
this.day=day;
}
else if(month==4||month==6||month==9||month==11)
{
if(day>=1&&day<=30)
this.day=day;
}
else if(month==2)
{
int k;
k=year%400;
if(k==0)//闰年
{
if(day>=1&&day<=28)
this.day=day;
}
else
{
if(day>=1&&day<=29)
this.day=day;
}
}
}
}
}
public String toString() {
return year + "/" + month + "/" + day;
}
}
public class F4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//Date date=new Date();
System.out.println("请创建一个日期:");
Scanner sc=new Scanner(System.in);
int y=sc.nextInt();
int m=sc.nextInt();
int d=sc.nextInt();
Date da=new Date(y,m,d);
System.out.println(da.toString());
}
}
运行结果
输入正确日期
输入错误日期