欢迎光临散文网 会员登陆 & 注册

打印日历

2023-03-15 22:21 作者:烧死寂静  | 我要投稿

好像可以直接plusDays(),用不着每个月都回退到第一天,下次再改了。


import java.time.LocalDate;

public class Test1 {
   public static void main(String[] args) {
       LocalDate date = LocalDate.now();
       int tomonth = date.getMonthValue();
       int today = date.getDayOfMonth();
       int toyear = date.getYear();
       date = changToOne(date);
       while (date.getYear() == toyear) {
           printMonth(date);
           int weekday = date.getDayOfWeek().getValue();
           System.out.println("Mon\tTue\tWed\tThu\tFri\tSat\tSun");
           for (int i = 1; i < weekday; i++) {
               System.out.print("   \t");
           }
           int month = date.getMonthValue();
           while (date.getMonthValue() == month) {
               System.out.printf("%3d", date.getDayOfMonth());
               if (month == tomonth && date.getDayOfMonth() == today) {
                   System.out.print("*");
               } else {
                   System.out.print("\t");
               }
               if (date.getDayOfWeek().getValue() == 7) {
                   System.out.println();
               }
               date = date.plusDays(1);
           }
           System.out.println("\n");
           date = changeToDayOne(date);
           date.plusMonths(1);
       }

   }
   //回退到今年首月首天
   public static LocalDate changToOne(LocalDate date) {
       int day = date.getDayOfMonth();
       int month = date.getMonthValue();
       date = date.minusDays(day - 1);
       date = date.minusMonths(month - 1);
       return date;
   }
   //回退到本月首天
   public static LocalDate changeToDayOne(LocalDate date) {
       int day = date.getDayOfMonth();
       return date.minusDays(day - 1);
   }
   //打印月份
   public static void printMonth(LocalDate date) {
       int month = date.getMonthValue();
       switch (month) {
           case 1 -> System.out.println("一月:");
           case 2 -> System.out.println("二月:");
           case 3 -> System.out.println("三月:");
           case 4 -> System.out.println("四月:");
           case 5 -> System.out.println("五月:");
           case 6 -> System.out.println("六月:");
           case 7 -> System.out.println("七月:");
           case 8 -> System.out.println("八月:");
           case 9 -> System.out.println("九月:");
           case 10 -> System.out.println("十月:");
           case 11 -> System.out.println("十一月:");
           case 12 -> System.out.println("十二月:");
           default -> System.out.println("erro");
       }
   }
}


打印日历的评论 (共 条)

分享到微博请遵守国家法律