java编写一个万年历
时间: 2023-09-05 15:08:59 浏览: 182
以下是基于Java编写的一个简单的万年历程序,可以在命令行中运行:
```java
import java.util.Scanner;
public class Calendar {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入年份:");
int year = scanner.nextInt();
System.out.println("请输入月份:");
int month = scanner.nextInt();
printCalendar(year, month);
}
public static void printCalendar(int year, int month) {
// 计算当月第一天的星期数(0-6,0表示星期日)
int firstDayOfWeek = getFirstDayOfWeek(year, month);
// 计算当月有多少天
int daysOfMonth = getDaysOfMonth(year, month);
// 打印日历头部
System.out.println("日\t一\t二\t三\t四\t五\t六");
// 打印日历内容
for (int i = 0; i < firstDayOfWeek; i++) {
System.out.print("\t");
}
for (int i = 1; i <= daysOfMonth; i++) {
System.out.print(i + "\t");
if ((i + firstDayOfWeek) % 7 == 0) {
System.out.println();
}
}
}
// 获取某年某月的第一天是星期几
public static int getFirstDayOfWeek(int year, int month) {
return java.time.LocalDate.of(year, month, 1).getDayOfWeek().getValue() % 7;
}
// 获取某年某月有多少天
public static int getDaysOfMonth(int year, int month) {
return java.time.YearMonth.of(year, month).lengthOfMonth();
}
}
```
该程序可以根据用户输入的年份和月份,打印出对应的万年历。
例如,输入年份为2021,月份为7,运行结果如下:
```
请输入年份:
2021
请输入月份:
7
日 一 二 三 四 五 六
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
```
阅读全文