日期的逻辑判断(不用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年不是闰年。
相关文章推荐
- 实用vbs提醒小程序
- C#一个简单的定时小程序实现代码
- 用hta做的好玩的小程序(固定在桌面)
- 基于JavaScript实现简单的随机抽奖小程序
- 基于C#实现简单的随机抽奖小程序
- 基于PHP实现简单的随机抽奖小程序
- 小程序的F4:微信、百度、支付宝和今日头条的流星花园
- Windows 7移除***后边栏小程序显示不正常的处理办法
- 程序:从标准输入C源代码,验证所有的“{”和“}”都是成对出现的
- 取a与b的最大值
- 音乐小程序
- 简易学生信息管理系统
- WIN7\Vista 边栏小工具的制作 HelloWorld
- 初学C时,用C编写的一个送给女朋友的小程序
- 一个求24点所有可能解的VB源代码及程序实现
- C++小程序开发(1)--加法测试题
- 027.迭代器 Iterator
- 026.LinkedList底层详解
- 025.ArrayList中的方法.续
- 024.ArrayList中方法详解