java8 打印本月日曆

思想:打印1號前面的空格,再從1號順序打印到本月的最後一天,其中星期天那天換行。

public class DateDemo {
    public static void main(String[] args) {
        LocalDate today = LocalDate.now();
        //本月第一天和最後一天
        LocalDate first =LocalDate.of(today.getYear(),today.getMonth(),1);
        LocalDate lastDay =today.with(TemporalAdjusters.lastDayOfMonth());
        //本月有多少天
        int days= lastDay.get(ChronoField.DAY_OF_MONTH);
        //本月第一天是星期幾
        int firstweek = first.get(ChronoField.DAY_OF_WEEK);
        //打印星期
        String[] ss={"一","二","三","四","五","六","日"};
        for (int i = 0; i < 7; i++) {
          System.out.print(" "+ss[i]);
        }
        System.out.println();


        //打印空格
        for (int i = 1; i <firstweek ; i++) {
          System.out.printf("%-3s"," ");
        }
        //打印從1-最後一天
        for (int i = firstweek,j=1; j <=days; i++,j++) {
            if(i%7==0){
                System.out.printf("%3d\n",j);
            }else{
                System.out.printf("%3d",j);
            }
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章