日曆Demo
阿新 • • 發佈:2018-11-08
public static void main(String[] args) {
LocalDate localDate = LocalDate.now(); // localDate 2018-09-25
int monthValue = localDate.getMonthValue(); // 得到月份 9
int dayOfMonth = localDate.getDayOfMonth(); // 得到日期 25
localDate = localDate.minusDays(dayOfMonth - 1); // minusDays 當前物件減去指定的天數
DayOfWeek week = localDate.getDayOfWeek(); // SATURDAY
int value = week.getValue(); // 將日期換為數字,星期一就是1,星期二就是2,以此類推,這裡value是6
System.out.println("Mon Tue Wed Thu Fri Sat Sun");
for (int i = 1; i < value; i++) {
System.out.print(" ");
}
while (localDate.getMonthValue() == monthValue){
System.out.printf("%3d", localDate.getDayOfMonth());
if (localDate.getDayOfMonth() == dayOfMonth){
System.out.print("*"); // 將今日的日期後面加上一個*
}else {
System.out.print(" ");
}
if (localDate.getDayOfWeek().getValue() == 7){
System.out.println();
}
localDate = localDate.plusDays(1);
}
}
通過 localDate = localDate.minusDays(dayOfMonth - 1),來得到每個月的第一天,minusDays為減去引數天數
LocalDate中的其他方法在結尾顯示
System.out.printf的使用方法為,第一個引數是格式控制符,格式控制符以一個%開始,一個字母結束,字母規定了方法按照何種方式列印這個值,例如d表示十進位制整數(int),f表示浮點數(double)
格式控制符 | 結果 |
---|---|
%d | 整數 |
%8d | 整數,右對齊,輸出寬度為8 |
-6% | 整數,左對齊,輸出寬度為6 |
%f | 浮點數 |
%8f | 浮點數,右對齊,輸出寬度為8 |
%.2f | 浮點數,精確到百分位 |
%16.3f | 浮點數,精確到千分位,輸出寬度為16 |
String同理,只是將d換成s
以下是LocalDate中的常用方法,其餘可以查詢API
方法名 | 返回值型別 | 對該方法的解釋 |
---|---|---|
getYear() | int | 獲取當前日期的年份 |
getMonth() | Month | 獲取當前日期的月份物件 |
getMonthValue() | int | 獲取當前日期是第幾月 |
getDayOfWeek() | DayOfWeek | 表示該物件表示的日期是星期幾 |
getDayOfMonth() | int | 表示該物件表示的日期是這個月第幾天 |
getDayOfYear() | int | 表示該物件表示的日期是今年第幾天 |
withYear(int year) | LocalDate | 修改當前物件的年份 |
withMonth(int month) | LocalDate | 修改當前物件的月份 |
withDayOfMonth(int dayOfMonth) | LocalDate | 修改當前物件在當月的日期 |
isLeapYear() | boolean | 是否是閏年 |
lengthOfMonth() | int | 這個月有多少天 |
lengthOfYear() | int | 該物件表示的年份有多少天(365或者366) |
plusYears(long yearsToAdd) | LocalDate | 當前物件增加指定的年份數 |
plusMonths(long monthsToAdd) | LocalDate | 當前物件增加指定的月份數 |
plusWeeks(long weeksToAdd) | LocalDate | 當前物件增加指定的週數 |
plusDays(long daysToAdd) | LocalDate | 當前物件增加指定的天數 |
minusYears(long yearsToSubtract) | LocalDate | 當前物件減去指定的年數 |
minusMonths(long monthsToSubtract) | LocalDate | 當前物件減去註定的月數 |
minusWeeks(long weeksToSubtract) | LocalDate | 當前物件減去指定的週數 |
minusDays(long daysToSubtract) | LocalDate | 當前物件減去指定的天數 |
compareTo(ChronoLocalDate other) | int | 比較當前物件和other物件在時間上的大小,返回值如果為正,則當前物件時間較晚 |
isBefore(ChronoLocalDate other) | boolean | 比較當前物件日期是否在other物件日期之前 |
isAfter(ChronoLocalDate other) | boolean | 比較當前物件日期是否在other物件日期之後 |
isEqual(ChronoLocalDate other) | boolean | 比較兩個日期物件是否相等 |