java声明一个日期类MyDate

复制代码
使用递归调用求某个整数的阶乘n!

声明一个日期类MyDate,包含如下方法:

* - boolean isLeapYear():判断是否是闰年

* - String monthName():根据月份值,返回对应的英语单词

* - int totalDaysOfMonth():返回这个月的总天数

* - int totalDaysOfYear():返回这一年的总天数

* - int daysOfTheYear():返回这一天是当年的第几数

* 在测试类的main方法中,创建MyDate对象,赋值为当天日期值,调用方法

复制代码
public class MyDate {
 
    //判断是否是闰年
    public boolean isLeapYear(int year) {
        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
            return true;
        } else {
            return false;
        }
    }
 
    //根据月份值,返回对应的英语单词
    public String monthName(int month) {
        switch (month) {
            case 1:
                return "January";
            case 2:
                return "February";
            case 3:
                return "March";
            case 4:
                return "April";
            case 5:
                return "May";
            case 6:
                return "June";
            case 7:
                return "July";
            case 8:
                return "August";
            case 9:
                return "February";
            case 10:
                return "October";
            case 11:
                return "November";
            case 12:
                return "December";
            default:
                return "数据错误";
        }
    }
 
    //返回这个月的总天数
    public int totalDaysOfMonth(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:
                if (isLeapYear(year)) {
                    return 29;
                } else {
                    return 28;
                }
            default:
                return -1;
        }
    }
 
    //返回这一年的总天数
    public int totalDaysOfYear(int year) {
        if (isLeapYear(year)) {
            return 366;
        } else {
            return 365;
        }
    }
 
    //返回这一天是当年的第几天数
    public int daysOfTheYear(int year, int month, int date) {
        int total = 0;
        for (int i = 1; i <= month; i++) {
            total += totalDaysOfMonth(year, month);
        }
        return total += date;
    }
}

public class MyDateTest {
    public static void main(String[] args) {
        MyDate myDate = new MyDate();
 
        System.out.println("请输入年份:");
        Scanner scan1 = new Scanner(System.in);
        int year = scan1.nextInt();
        System.out.println("请输入月份:");
        Scanner scan2 = new Scanner(System.in);
        int month = scan2.nextInt();
        System.out.println("请输入日期:");
        Scanner scan3 = new Scanner(System.in);
        int date = scan2.nextInt();
 
//        System.out.println(year);
//        System.out.println(month);
//        System.out.println(date);
 
        System.out.println("今年是否是闰年:"+myDate.isLeapYear(year));
        System.out.println("这个月对应的英文单词是:"+myDate.monthName(month));
        System.out.println("这个月总共"+myDate.totalDaysOfMonth(year, month)+"天");
        System.out.println("今年的总天数是"+myDate.totalDaysOfYear(year)+"天");
        System.out.println("今天是今年的第"+myDate.daysOfTheYear(year, month, date)+"天");
    }
}
相关推荐
七牛云行业应用2 分钟前
Jev 报 401 / api_key_required 怎么解决:TypeSafe AI 官方错误码表与排查步骤
算法·github
bkspiderx12 分钟前
Qt 的消息机制:事件驱动与信号槽的底层逻辑
开发语言·qt·信号槽·事件驱动·qt 的消息机制
xcl092513 分钟前
西安同城货运系统源码开发实战 核心功能实现与部署全指南
java·spring boot
晴天的雨.99214 分钟前
【C++算法】三数之和
开发语言·c++·算法
Ysx14 分钟前
踩了 5 次"本地全绿、生产失效"之后,我把交付流程做成了 SOP
后端·程序员
pippocao19 分钟前
王者荣耀日志组件BqLog为什么这么快之2——从环形队列到自适应数据总线
后端
pippocao19 分钟前
王者荣耀日志组件BqLog为什么这么快之1——高性能实时压缩日志
java
AC赳赳老秦23 分钟前
公开 CSV 数据集批量处理实战:用 OpenClaw 高效完成下载、清洗与标准化分析样本生成
java·开发语言·汇编·c++·python·deepseek·openclaw
孟健34 分钟前
Stripe出海收款架构设计:水星银行与香港账户实测对比与资金流闭环
后端·架构
ym hyd 11137 分钟前
慢性病精细化管理平台源码 Java+SpringBoot+Vue3 前后分离
java·vue.js·spring boot·毕设