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)+"天");
    }
}
相关推荐
天天摸鱼的java工程师6 分钟前
高考放榜夜,系统别崩!聊聊查分系统怎么设计,三张表足以?
java·后端·mysql
天天摸鱼的java工程师15 分钟前
深入理解 Spring 核心:IOC 与 AOP 的原理与实践
java·后端
漫步者TZ15 分钟前
【Netty系列】解决TCP粘包和拆包:LengthFieldBasedFrameDecoder
java·网络协议·tcp/ip·netty
木木黄木木20 分钟前
Python制作史莱姆桌面宠物!可爱的
开发语言·python·宠物
编程轨迹28 分钟前
使用 Playwright Java 框架创建自定义的请求和响应日志记录器
后端
愿你是阳光060741 分钟前
Java-redis实现限时在线秒杀功能
java·redis·bootstrap
exploration-earth44 分钟前
本地优先的状态管理与工具选型策略
开发语言·前端·javascript
Moonbit1 小时前
征文开启|写一篇能跑的文档,赢 MoonBit 周边 & 成为官方示例
后端
我爱Jack1 小时前
Spring Boot统一功能处理深度解析
java·spring boot·后端
suuijbd1 小时前
个人总结八股文之-基础篇(持续更新)
算法