117.info
人生若只如初见

java万年历实现代码怎么写

以下是一个简单的Java万年历实现代码:

import java.util.Scanner;

public class CalendarProgram {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入年份:");
        int year = scanner.nextInt();
        System.out.print("请输入月份:");
        int month = scanner.nextInt();

        printCalendar(year, month);

        scanner.close();
    }

    public static void printCalendar(int year, int month) {
        int daysInMonth = getDaysInMonth(year, month);
        int startDayOfWeek = getStartDayOfWeek(year, month);

        System.out.println("日\t一\t二\t三\t四\t五\t六");

        for (int i = 0; i < startDayOfWeek; i++) {
            System.out.print("\t");
        }

        for (int day = 1; day <= daysInMonth; day++) {
            System.out.print(day + "\t");

            if ((day + startDayOfWeek) % 7 == 0) {
                System.out.println();
            }
        }
    }

    public static int getDaysInMonth(int year, int month) {
        int[] daysInMonth = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

        if (month == 2 && isLeapYear(year)) {
            return 29;
        }

        return daysInMonth[month - 1];
    }

    public static int getStartDayOfWeek(int year, int month) {
        int totalDays = 0;

        for (int y = 1900; y < year; y++) {
            totalDays += isLeapYear(y) ? 366 : 365;
        }

        for (int m = 1; m < month; m++) {
            totalDays += getDaysInMonth(year, m);
        }

        return (totalDays + 1) % 7;
    }

    public static boolean isLeapYear(int year) {
        return year % 400 == 0 || (year % 4 == 0 && year % 100 != 0);
    }
}

这个代码实现了一个简单的万年历程序。用户可以输入年份和月份,然后程序会打印出对应的日历。程序使用了getDaysInMonth()函数来计算每个月的天数,getStartDayOfWeek()函数来计算每个月的第一天是星期几,isLeapYear()函数来判断是否是闰年。最后,printCalendar()函数根据上述计算结果打印出日历。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe143AzsLAwBWDVQ.html

推荐文章

  • java中异常类会影响性能吗

    在Java中,异常类本身不会对性能产生显著影响。异常处理机制是为了在程序运行时处理错误或异常情况,而不是为了优化性能。然而,在使用异常时,需要注意以下几点...

  • java中异常类如何避免

    在Java中,避免异常的最好方法是编写健壮的代码并遵循一些最佳实践。以下是一些建议: 预期和处理异常:使用try-catch语句来捕获和处理可能发生的异常。确保处理...

  • java中异常类有哪些常见类型

    Java中的异常类主要分为两大类:受检异常(Checked Exceptions)和非受检异常(Unchecked Exceptions)。以下是具体的异常类型:
    受检异常(Checked Except...

  • java中异常类怎么捕获

    在Java中,我们使用try-catch语句来捕获异常。当程序执行过程中遇到异常时,Java运行时系统会抛出一个异常对象。你可以使用try块来包含可能引发异常的代码,然后...

  • win10桌面清晰度如何调

    要调整Windows 10桌面的清晰度,可以按照以下步骤进行操作: 右键单击桌面空白处,选择“显示设置”。
    在“显示设置”窗口中,找到“分辨率”选项。
    在...

  • win10桌面显示模糊的原因有哪些

    Win10桌面显示模糊的原因可能有以下几个: 分辨率设置不当:如果分辨率设置太低,桌面显示会变得模糊。可以尝试调整分辨率设置。 显示器驱动问题:如果显示器驱动...

  • vb怎么读取access数据库

    在VB中,可以使用ADO(ActiveX Data Objects)对象来读取Access数据库。
    首先,需要引用ADODB库。在VB编辑器中,点击"项目" -> “引用”,在弹出的对话框中选...

  • linux远程拷贝文件的方法是什么

    在Linux系统中,有多种方法可以远程拷贝文件,以下是其中几种常用方法: scp命令:使用Secure Copy Protocol (SCP)进行远程拷贝文件。语法如下:
    scp [选项...