1. 程式人生 > 實用技巧 >Java生成日曆(使用LocalDate)

Java生成日曆(使用LocalDate)

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.