Java生成日曆(使用LocalDate)
阿新 • • 發佈:2020-11-22
package com.sun.lesson02; import java.time.DayOfWeek; import java.time.LocalDate; public class LocalDate01 { public static void main(String[] args) { LocalDate date = LocalDate.now(); int month = date.getMonthValue(); int today = date.getDayOfMonth(); date = date.minusDays(today - 1); DayOfWeek weekday= date.getDayOfWeek(); int value = weekday.getValue(); 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(); } if(date.getDayOfWeek().getValue() != 1) System.out.println(); } }
關於minusDays,其內部原始碼形式如下:
public LocalDate minusDays(long daysToSubtract) { return (daysToSubtract == Long.MIN_VALUE ? plusDays(Long.MAX_VALUE).plusDays(1) : plusDays(-daysToSubtract)); }
如果當天是1號,today-1的輸入就是0,然後三目運算會返回1;
如果當天不是1號,那麼today就會加上-(today-1),也就是1.