输入一个年份,判断是否为闰年(假设修正法)

根据修正法,输入年份2021,程序判断并输出该年份不是闰年。涉及算法设计及Java/C语言实现。

判断是否为闰年

public class AssumeCorrect02 {
   
   
    public static void main(String[] args) {
   
   
        Scanner scanner = new Scanner(System.in
public class MyDate { private int year; private int month; private int day; // 无参构造方法 public MyDate() { this.year = 2024; this.month = 1; this.day = 1; } // 带参构造方法 public MyDate(int year, int month, int day) { setYear(year); setMonth(month); setDay(day); } // 判断是否闰年 public boolean isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } // 获取某个月的天数 private int getDaysInMonth(int year, int month) { switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 4: case 6: case 9: case 11: return 30; case 2: return isLeapYear(year) ? 29 : 28; default: return 0; } } // setter 方法 public void setYear(int year) { if (year >= 1900 && year <= 2100) { this.year = year; // 重新验证日期(特别是2月份) if (day > getDaysInMonth(year, month)) { this.day = getDaysInMonth(year, month); } } else { System.out.println("年份必须在1900-2100之间"); } } public void setMonth(int month) { if (month >= 1 && month <= 12) { this.month = month; // 重新验证日期 if (day > getDaysInMonth(year, month)) { this.day = getDaysInMonth(year, month); } } else { System.out.println("月份必须在1-12之间"); } } public void setDay(int day) { int maxDays = getDaysInMonth(year, month); if (day >= 1 && day <= maxDays) { this.day = day; } else { System.out.println("日期必须在1-" + maxDays + "之间"); this.day = 1; // 设置为默认值 } } // getter 方法 public int getYear() { return year; } public int getMonth() { return month; } public int getDay() { return day; } @Override public String toString() { return year + "-" + (month < 10 ? "0" + month : month) + "-" + (day < 10 ? "0" + day : day); } // 测试方法 public static void main(String[] args) { // 创建日期1:2024-12-31(闰年) MyDate date1 = new MyDate(2024, 12, 31); System.out.println("日期1:" + date1); // 创建日期2:1900-11-15(平年) MyDate date2 = new MyDate(1900, 11, 15); System.out.println("日期2:" + date2); // 测试闰年判断 System.out.println("2024年是闰年吗?" + date1.isLeapYear(2024)); System.out.println("1900年是闰年吗?" + date2.isLeapYear(1900)); // 改日期2的年份为2000(闰年),月份改为10月,日期改为25日 date2.setYear(2000); date2.setMonth(10); date2.setDay(25); System.out.println("改后的日期2:" + date2); System.out.println("2000年是闰年吗?" + date2.isLeapYear(2000)); } }帮我运行这个代码
10-21
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值