1.目标:根据输入的年月日判断是否为闰年
2.代码:
1 import java.util.Scanner; 2 public class Date { 3 private int year; // 年 4 private int month; // 月 5 private int day; // 日 6 //有默认值的构造函数 7 public Date() { 8 year = 1000; 9 month = 1; 10 day = 1; 11 } 12 // 判断是否为闰年 13 public int isleap() { 14 if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) { 15 return 1; 16 } else { 17 return 0; 18 } 19 } 20 // 判断日期是否合法 21 public int check() { 22 int m, n = 2; 23 m = isleap(); 24 if (month > 12) { 25 n = 0; 26 } 27 if (month < 0 || year < 0 || day < 0) { 28 n = 0; 29 } 30 if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { 31 if (day > 31) 32 n = 0; 33 else 34 n = 1; 35 } 36 if (month == 4 || month == 6 || month == 9 || month == 11) { 37 if (day > 30) 38 n = 0; 39 else 40 n = 1; 41 } 42 if (m == 1) { 43 if (month == 2 && day >= 30) 44 n = 0; 45 if (month == 2 && day < 30) 46 n = 1; 47 } 48 if (m == 0) { 49 if (month == 2 && day >= 29) 50 n = 0; 51 if (month == 2 && day < 29) 52 n = 1; 53 } 54 return n; 55 } 56 public void setDate() { 57 Scanner in = new Scanner(System.in); 58 System.out.print("请输入年月日:"); 59 year = in.nextInt(); 60 month = in.nextInt(); 61 day = in.nextInt(); 62 } 63 public void display() { 64 System.out.println(year + "-" + month + "-" + day); 65 int a, b; 66 a = isleap(); 67 b = check(); 68 if (b == 0) { 69 System.out.println("Error Date!"); 70 } else if (b == 1) { 71 if (a == 1) 72 System.out.println("Leap year"); 73 if (a == 0) 74 System.out.println("Common year"); 75 } 76 } 77 public static void main(String[] args) { 78 Date d1 = new Date(); 79 Date d2 = new Date(); 80 d1.display(); 81 d2.setDate(); 82 d2.display(); 83 } 84 }
3.测试截图