更新时间:2024-04-21 14:47:43 来源:极悦 浏览234次
要实现一个Java万年历,可以采用以下步骤:
获取用户输入的年份和月份,可以使用Scanner类或JOptionPane类实现。
判断该年份是否为闰年。如果该年份能够被4整除但不能被100整除,或者能够被400整除,那么该年就是闰年,否则为平年。可以通过Java的条件语句实现。
获取该月份的第一天是星期几,可以使用Java的Calendar类实现。通过设置Calendar对象的年份和月份,然后调用get方法获取星期几的值。
计算该月份的总天数,可以使用Java的switch语句根据月份来确定天数。
创建二维数组,用于存储日历表格。
填充日历表格。先将第一行填充完整,然后在循环中从第二行开始填充。如果当月天数小于等于表格中剩余的天数,则将该月所有日期填充完毕。否则,填充该月的所有日期后,剩余的表格空间设置为0。
输出日历表格,可以使用Java的System.out.println方法逐行输出。
下面是Java代码示例:
import java.util.Calendar;
import java.util.Scanner;
public class CalendarDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入年份:");
int year = sc.nextInt();
System.out.print("请输入月份:");
int month = sc.nextInt();
sc.close();
int days = getDaysOfMonth(year, month);
int firstDayOfWeek = getFirstDayOfWeek(year, month);
int[][] calendar = new int[6][7];
int day = 1;
for (int i = 0; i < calendar.length; i++) {
for (int j = 0; j < calendar[i].length; j++) {
if (i == 0 && j < firstDayOfWeek) {
calendar[i][j] = 0;
} else if (day > days) {
calendar[i][j] = 0;
} else {
calendar[i][j] = day;
day++;
}
}
}
System.out.println(year + "年" + month + "月的日历:");
System.out.println("日\t一\t二\t三\t四\t五\t六");
for (int i = 0; i < calendar.length; i++) {
for (int j = 0; j < calendar[i].length; j++) {
if (calendar[i][j] == 0) {
System.out.print("\t");
} else {
System.out.print(calendar[i][j] + "\t");
}
}
System.out.println();
}
}
// 获取指定年月的总天数
public static int getDaysOfMonth(int year, int month) {
int days = 0;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
}
}
我们需要定义一个方法来输出当前月份的日历,代码如下:
public static void printCalendar(int year, int month) {
int[][] calendar = getCalendar(year, month);
System.out.println(" Sun Mon Tue Wed Thu Fri Sat");
for (int i = 0; i < calendar.length; i++) {
for (int j = 0; j < calendar[i].length; j++) {
if (calendar[i][j] == 0) {
System.out.print(" ");
} else {
System.out.printf("%4d", calendar[i][j]);
}
}
System.out.println();
}
}
这个方法首先调用 getCalendar() 方法获取当前月份的日历数组,然后按照日历格式输出到控制台上。
最后,我们可以编写一个 main() 方法来测试我们的日历程序:
public static void main(String[] args) {
int year = 2023;
int month = 3;
printCalendar(year, month);
}
这个 main() 方法输出的是 2023 年 3 月的日历,运行程序后输出结果如下:
Sun Mon Tue Wed Thu Fri Sat
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
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习