java实现1.编写一个程序,程序提供两种功能:1)根据用户输入的年份输出该年日历。2) 根据用户输入的日期,输出该天星期。 程序应具有良好的人机交互性能,即:程序应向用户提示功能说明,并可根据用户的功能选择,执行对应的功能,并给出带详细描述信息的最终执行结果。
时间: 2023-05-22 09:02:24 浏览: 175
好的,这道题目已经涉及编程类的问题。对于解决这个问题,我们可以使用 Java 的日期类库。比如,在Java 8中,我们可以使用java.time包中的LocalDate类来处理日期。
下面是示例代码:
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.util.Scanner;
public class CalendarApp {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("欢迎使用日历应用!请选择需要的功能:");
System.out.println("1. 根据年份输出日历");
System.out.println("2. 根据日期输出星期");
int choice = scanner.nextInt();
if (choice == 1) { // 根据年份输出日历
System.out.println("请输入年份:");
int year = scanner.nextInt();
System.out.println(year + "年的日历如下:");
printCalendar(year);
} else if (choice == 2) { // 根据日期输出星期
System.out.println("请输入日期(yyyy-MM-dd):");
String dateString = scanner.next();
LocalDate date = LocalDate.parse(dateString);
DayOfWeek dayOfWeek = date.getDayOfWeek();
int dayOfWeekValue = dayOfWeek.getValue();
System.out.println(dateString + "是星期" + dayOfWeekValue);
} else {
System.out.println("输入无效,程序退出!");
}
scanner.close();
}
private static void printCalendar(int year) {
LocalDate startDate = LocalDate.of(year, 1, 1);
LocalDate endDate = LocalDate.of(year, 12, 31);
LocalDate currentDate = startDate;
while (!currentDate.isAfter(endDate)) {
int dayOfMonth = currentDate.getDayOfMonth();
DayOfWeek dayOfWeek = currentDate.getDayOfWeek();
int dayOfWeekValue = dayOfWeek.getValue();
String dayOfWeekStr = getDayOfWeekString(dayOfWeekValue);
System.out.print(dayOfMonth + "(" + dayOfWeekStr + ")" + " ");
if (currentDate.getDayOfWeek() == DayOfWeek.SUNDAY) {
System.out.println();
}
currentDate = currentDate.plusDays(1);
}
}
private static String getDayOfWeekString(int dayOfWeekValue) {
switch (dayOfWeekValue) {
case 1:
return "一";
case 2:
return "二";
case 3:
return "三";
case 4:
return "四";
case 5:
return "五";
case 6:
return "六";
case 7:
return "日";
default:
return "";
}
}
}
当用户输入1时,程序会要求用户输入一个年份,然后输出该年的完整日历。当用户输入2时,程序会要求用户输入一个日期,然后输出该日期是星期几。
阅读全文