日历Demo

    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 比较两个日期对象是否相等

猜你喜欢

转载自blog.csdn.net/weixin_42857002/article/details/82841888