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)+"天");
    }
}
相关推荐
xlsw_几秒前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
神仙别闹1 小时前
基于java的改良版超级玛丽小游戏
java
Dream_Snowar1 小时前
速通Python 第三节
开发语言·python
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭1 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
XH华1 小时前
初识C语言之二维数组(下)
c语言·算法
暮湫2 小时前
泛型(2)
java
超爱吃士力架2 小时前
邀请逻辑
java·linux·后端
南宫生2 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
转码的小石2 小时前
12/21java基础
java
不想当程序猿_2 小时前
【蓝桥杯每日一题】求和——前缀和
算法·前缀和·蓝桥杯