java实现一个程序,程序提供两种功能: 1)根据用户输入的年份输出该年日历。 2)根据用户输入的日期,输出该天星期。要求对该题目进行分析
时间: 2024-05-10 21:21:36 浏览: 9
题目分析:
该程序需要实现两个功能,分别是输出年历和输出星期。因此需要设计两个函数,分别实现这两个功能。
1. 输出年历:根据用户输入的年份,需要输出该年的日历。可以使用Java的Calendar类来实现。首先需要获取该年的1月1日是周几,然后输出该年的12个月份的日历。输出日历时,可以使用Java的System.out.printf()函数来实现格式化输出。
2. 输出星期:根据用户输入的日期,需要输出该天是星期几。可以使用Java的SimpleDateFormat类来实现。首先需要将用户输入的日期字符串解析为Date类型的对象,然后再将该Date对象格式化为星期几的字符串。
代码实现:
下面是一个简单的Java程序,实现了上述两个功能:
```
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class CalendarDemo {
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();
printCalendar(year);
} else if (choice == 2) {
System.out.println("请输入日期(格式为yyyy-MM-dd):");
String dateStr = scanner.next();
printWeekday(dateStr);
} else {
System.out.println("输入错误!");
}
}
// 输出年历
private static void printCalendar(int year) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, 0);
calendar.set(Calendar.DAY_OF_MONTH, 1);
int firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
for (int i = 0; i < 12; i++) {
System.out.printf("=====%d年%d月=====\n", year, i + 1);
System.out.println("日\t一\t二\t三\t四\t五\t六");
for (int j = 1; j < firstDayOfWeek; j++) {
System.out.print("\t");
}
int daysOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int j = 1; j <= daysOfMonth; j++) {
System.out.printf("%d\t", j);
if ((firstDayOfWeek + j - 1) % 7 == 0) {
System.out.println();
}
}
System.out.println();
System.out.println("=================");
calendar.add(Calendar.MONTH, 1);
firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
}
}
// 输出星期
private static void printWeekday(String dateStr) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date date = sdf.parse(dateStr);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int weekday = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println(dateStr + "是星期" + (weekday - 1));
} catch (Exception e) {
System.out.println("日期格式错误!");
}
}
}
```
运行程序后,用户可以选择输出年历或输出星期。如果选择输出年历,需要输入年份;如果选择输出星期,需要输入日期(格式为yyyy-MM-dd)。程序会根据用户输入的信息,输出相应的数据。
注意:上述代码只是一个简单的示例,实际开发中还需要考虑更多的问题,如输入的合法性、错误处理等。