1. 程式人生 > 其它 >JAVA判斷輸入日期是否合法

JAVA判斷輸入日期是否合法

技術標籤:javajava

  1. 簡單判斷輸入日期是否合法
    執行結果:
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
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) { // TODO 自動生成的方法存根 @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); } } }
  1. 編寫一個代表日期的類,其中有代表年、月、日的3個屬性,建立日期物件時要判斷引數提供的年、月、日是否合法,不合法要進行糾正。“年”預設值為2000;月的值在1到12之間,預設值為1;日由一個對應12個月的整型陣列給出合法值,特別地,對於2月,通常為28天,但閏年的2月最多29天,閏年是該年值為400的倍數,或者為4的倍數但不為100的倍數。將建立的日期物件輸出時,年月日之間用“/”分隔。

在這裡插入圖片描述

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) {
		// TODO 自動生成的方法存根
		JudgeDate d1=new JudgeDate(2020,01,32);
		System.out.println(d1);
		JudgeDate d2=new JudgeDate(2020,12,24);
		System.out.println(d2);
	}

}