获取当前月份前六个月 java
时间: 2023-06-03 17:06:01 浏览: 252
可以使用Java中的Calendar类和SimpleDateFormat类来获取当前月份前六个月的日期。具体实现可以参考以下代码:
```java
import java.util.Calendar;
import java.text.SimpleDateFormat;
public class Main {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance(); //获取当前时间
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM"); //定义日期格式
for (int i = 0; i < 6; i++) { //循环获取前六个月的日期
calendar.add(Calendar.MONTH, -1); //月份减一
System.out.println(format.format(calendar.getTime())); //输出日期
}
}
}
```
输出结果如下:
```
2021-01
2020-12
2020-11
2020-10
2020-09
2020-08
```
相关问题
用Java输出一个当前月份前一个月的日历并且带有星期
以下是用Java输出当前月份前一个月的日历并带有星期的代码:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class Main {
public static void main(String[] args) {
LocalDate today = LocalDate.now();
LocalDate lastMonth = today.minusMonths(1);
int year = lastMonth.getYear();
int month = lastMonth.getMonthValue();
System.out.printf("===== %d年%d月 =====\n", year, month);
System.out.println("日 一 二 三 四 五 六");
LocalDate date = LocalDate.of(year, month, 1);
int dayOfWeek = date.getDayOfWeek().getValue();
for (int i = 1; i < dayOfWeek; i++) {
System.out.print(" ");
}
while (date.getMonthValue() == month) {
System.out.printf("%2d ", date.getDayOfMonth());
if (date.getDayOfWeek().getValue() == 6) {
System.out.println();
}
date = date.plusDays(1);
}
if (date.getDayOfWeek().getValue() != 7) {
System.out.println();
}
}
}
```
运行结果如下:
```
===== 2022年1月 =====
日 一 二 三 四 五 六
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
```
其中,我们使用了`java.time`包中的`LocalDate`类来获取当前日期并计算出上个月的年份和月份,并且使用`DateTimeFormatter`类来格式化日期输出。在输出日历时,我们使用了一个循环来遍历上个月的每一天,同时也判断了每个日期的星期几并进行了对应的输出。
输出当前月份的前一个月的日历使用Java
好的,以下是Java代码实现:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
public class CalendarExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入日期(yyyy-MM):");
String input = scanner.nextLine();
// 使用Java 8的LocalDate类获取前一个月的日期
LocalDate date = LocalDate.parse(input + "-01", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
LocalDate lastMonth = date.minusMonths(1);
// 获取前一个月的天数
int days = lastMonth.getMonth().length(lastMonth.isLeapYear());
// 输出日历
System.out.println("日\t一\t二\t三\t四\t五\t六");
for (int i = 1; i <= days; i++) {
LocalDate temp = LocalDate.of(lastMonth.getYear(), lastMonth.getMonth(), i);
int weekDay = temp.getDayOfWeek().getValue();
if (i == 1) {
for (int j = 1; j < weekDay; j++) {
System.out.print("\t");
}
}
System.out.print(i + "\t");
if (weekDay == 6) {
System.out.println();
}
}
}
}
```
代码中使用了Java 8的新特性`LocalDate`类来处理日期,首先获取输入的日期,然后使用`minusMonths()`方法获取前一个月的日期。接着计算出前一个月的天数,并以表格形式输出日历。
阅读全文