java实现1.编写一个程序,程序提供两种功能:1)根据用户输入的年份输出该年日历。2) 根据用户输入的日期,输出该天星期。 程序应具有良好的人机交互性能,即:程序应向用户提示功能说明,并可根据用户的功能选择,执行对应的功能,并给出带详细描述信息的最终执行结果。
时间: 2023-05-21 14:04:49 浏览: 229
这是一个非常好的编程问题。为了实现这两个功能,我们可以使用 Java 中的基本日期和日历类。
首先,实现输出指定年份日历的功能,我们可以使用 Java 中的 Calendar 类和 SimpleDateFormat 类。用户输入年份后,程序将创建一个 Calendar 实例,并将年份设置为用户提供的年份。接下来,我们可以使用 SimpleDateFormat 类将 Calendar 对象格式化为日历字符串,并将其打印到控制台。
接着,实现输出指定日期所在星期的功能,我们同样可以使用 Calendar 类。用户输入日期后,程序将创建一个 Calendar 实例,并将其设置为用户提供的日期。然后,我们可以使用 get 方法获取该日期所在的星期,并将其打印到控制台。
最后,为了实现良好的人机交互性能,我们可以在程序中使用 Scanner 类读取用户的输入,并向用户提供一些文本提示,以便用户知道程序的功能和如何使用它们。
下面是 Java 代码实现:
```
import java.util.*;
import java.text.*;
public class CalendarProgram {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("This program provides two functions:");
System.out.println("1. Output the calendar for a given year.");
System.out.println("2. Output the day of the week for a given date.");
System.out.println("Please enter your choice (1 or 2): ");
int choice = scanner.nextInt();
if (choice == 1) {
System.out.println("Please enter the year: ");
int year = scanner.nextInt();
Calendar calendar = Calendar.getInstance();
calendar.clear();
calendar.set(Calendar.YEAR, year);
SimpleDateFormat dateFormat = new SimpleDateFormat("MMMM");
for (int month = 0; month < 12; month++) {
System.out.println(dateFormat.format(calendar.getTime()) + " " + year);
System.out.println("Su Mo Tu We Th Fr Sa");
int daysInMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
int firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
for (int day = 1; day < firstDayOfWeek; day++) {
System.out.print(" ");
}
for (int day = 1; day <= daysInMonth; day++) {
System.out.printf("%2d%s", day, day == calendar.get(Calendar.DAY_OF_MONTH) ? "*" : " ");
if ((day + firstDayOfWeek - 1) % 7 == 0) {
System.out.println();
}
}
System.out.println();
calendar.add(Calendar.MONTH, 1);
}
} else if (choice == 2) {
System.out.println("Please enter the date (dd-MM-yyyy): ");
String dateString = scanner.next();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date date = null;
try {
date = dateFormat.parse(dateString);
} catch (ParseException e) {
System.out.println("Invalid date format!");
return;
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
String dayOfWeekString = new SimpleDateFormat("EEEE").format(calendar.getTime());
System.out.println("Day of the week: " + dayOfWeekString);
} else {
System.out.println("Invalid choice!");
}
}
}
```
我希望这个程序符合您的要求,可以成功实现您的需求。
阅读全文