您的位置:首页 > 移动开发 > 微信开发

日期的逻辑判断(不用Date和 Calendar)

2016-04-07 00:31 323 查看

小程序:判断输入日期的逻辑是否有错误

<pre name="code" class="java">/**
* Created by Liu S.J on 4/6/2016.
* Date类三个属性
*/
import java.util.Scanner;
public class Date {
private int Year = 2000;
private int Month = 1;
private int Day;
int leap;   //设置一个闰年变量,闰年为1,平年为0
public Date(){

}
public void setYear(int year) {
this.Year = year;
}
public int getYear() {
return Year;
}
public void setMonth(int month) {
this.Month = month;
}
public int getMonth() {
return Month;
}
public void setDay(int day) {
this.Day = day;
}
public int getDay() {
return Day;
}
public static void main(String args[]) {
Date date = new Date();
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个日期:(年月日请隔开)");
date.setYear(sc.nextInt());
date.setMonth(sc.nextInt());
date.setDay(sc.nextInt());
//判断月份是否错误
if (date.getMonth()> 12||date.getMonth()<=0) {
System.out.println("月输入错误!请重新输入月份");
date.setMonth(sc.nextInt());
}
/*判断是否是闰年,为leap赋相应的值
闰年判断条件:(date.getYear()%4==0&&date.getYear()%100!=0)||date.getYear()%400==0)
*/
if((date.getYear()%4==0&&date.getYear()%100!=0)||date.getYear()%400==0)
date.leap = 1;
else
date.leap = 0;
//判断日的输入是否错误
if(date.getMonth() == 2){            //第一种情况:2月份只有28或29天
if(date.leap==1&&date.getDay()>29){
System.out.println("闰年二月只有29天!请重新输入日");
date.setDay(sc.nextInt());
}
else if(date.leap==0&&date.getDay()>28){
System.out.println("平年二月只有28天!请重新输入日");
date.setDay(sc.nextInt());
}
}
else  if(date.getMonth() ==4||date.getMonth() ==6||date.getMonth() ==9||date.getMonth() ==11){   //情况二、4,6,9,11月30天
if (date.getDay()> 30) {
System.out.println("日输入错误(30天)!请重新输入日");
date.setDay(sc.nextInt());
}
} else {           //  情况三、其余月份31天
if (date.getDay()> 31) {
System.out.println("日输入错误(31天)!请重新输入日");
date.setDay(sc.nextInt());
}
}
System.out.println("日期输出为:"+date.getYear()+"年"+date.getMonth()+"月"+date.getDay()+"日");
}
}


闰年的判断为:if(year%4==0&&year%100!=0)||year%400==0),年份后两位是00的,

一般情况下,能被4除尽的是闰年,但是在整百年(如1800年、1900年、2000年)时,只有能被400除尽的才是闰年。因此1600年、2000年是闰年,1700年、1800年、1900年不是闰年。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  小程序