java编写输入日期的年份选择日历
时间: 2023-05-26 11:01:09 浏览: 63
A:
可以使用Java的Calendar类和SimpleDateFormat类来实现输入日期的年份选择日历,具体实现步骤如下:
1. 接收输入的年份和月份。
``` java
Scanner scanner = new Scanner(System.in);
int year = scanner.nextInt();
int month = scanner.nextInt();
```
2. 创建Calendar实例,并将日期设置为输入的年份和月份。
``` java
Calendar calendar = Calendar.getInstance();
calendar.set(year, month - 1, 1);
```
注意月份在Calendar中是从0开始的,所以需要将输入的月份减1。
3. 获取该月的第一天是星期几,并打印日历表头。
``` java
int firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println("日 一 二 三 四 五 六");
for (int i = 1; i < firstDayOfWeek; i++) {
System.out.print(" ");
}
```
4. 获取该月的天数,并打印日历中的日期。
``` java
int daysOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int i = 1; i <= daysOfMonth; i++) {
System.out.printf("%2d ", i);
if ((firstDayOfWeek + i - 1) % 7 == 0) {
System.out.println();
}
}
```
注意在打印日期时需要对齐格式,例如:1号需要打印成“01”。
完整代码如下:
``` java
import java.util.Calendar;
import java.util.Scanner;
public class CalendarDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入年份和月份(空格分隔):");
int year = scanner.nextInt();
int month = scanner.nextInt();
Calendar calendar = Calendar.getInstance();
calendar.set(year, month - 1, 1);
int firstDayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println("日 一 二 三 四 五 六");
for (int i = 1; i < firstDayOfWeek; i++) {
System.out.print(" ");
}
int daysOfMonth = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
for (int i = 1; i <= daysOfMonth; i++) {
System.out.printf("%2d ", i);
if ((firstDayOfWeek + i - 1) % 7 == 0) {
System.out.println();
}
}
}
}
```
运行结果:
```
请输入年份和月份(空格分隔):2022 9
日 一 二 三 四 五 六
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
```