JAVA 8 LocalDate

java.time.LocalDate 8

  • static LocalDate now()
    构造一个表示当前日期的对象。
  • static LocalDate of(int year, int month, int day)
    构造一个表示给定日期的对象。
  • int getYear()
  • int getMonthValue()
  • int getDayOfMonth()
    得到当前日期的年、月和日。
  • DayOfWeek getDayOfWeek()
    得到当前日期是星期几,作为DayOfWeek类的一个实例返回。调用getValue来得到1 ~ 7之间的一个数,表示这是星期几,1表示星期一,7表示星期日。
  • LocalDate plusDays(int n)
  • LocalDate minusDays(int n)
    生成当前日期之后或之前n天的日期。

使用LocalDate输出日历

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
32
33
package com.xian.date18;
import java.time.DayOfWeek;
import java.time.LocalDate;
public class LocalDateDemo {
public static void printCalendar(LocalDate date) {
int month = date.getMonthValue();
int today = date.getDayOfMonth();
date = date.minusDays(today - 1); // set to start of month
DayOfWeek weekday = date.getDayOfWeek();
int value = weekday.getValue(); // 1 = Monday, ... 7 = Sunday
System.out.println("Mon Tue Wed Thu Fri Sat Sun");
for (int i = 1; i < value; i++)
System.out.print(" ");
while (date.getMonthValue() == month) {
System.out.printf("%3d", date.getDayOfMonth());
if (date.getDayOfMonth() == today)
System.out.print("*");
else
System.out.print(" ");
date = date.plusDays(1);
if (date.getDayOfWeek().getValue() == 1)
System.out.println();
}
}
public static void main(String[] args) {
printCalendar(LocalDate.now());
}
}
输出:
Mon Tue Wed Thu Fri Sat Sun
          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