习题:日历打印

 使用LocalDate类的程序来打印日历;



import java.time.DayOfWeek;
import java.time.LocalDate;

//日历打印
public class Test002 {
    public static void main(String[] args) {
        LocalDate date=LocalDate.now();
        int month=date.getMonthValue();//获取当前月份值
        int today=date.getDayOfMonth();//获取对象所在月份的第几天

        /*
        System.out.println(date.minusDays(today-1));
        System.out.println(date);
        说明此处调用了访问器方法
        */

       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();
        }
    }
}

 代码效果:

 

在上述代码:

LocalDate date=LocalDate.now();

 中,创建对象时没有直接使用构造器来构造对象,而是使用了用静态工厂方法(factory method)来代表你间接使用了构造器。

在上述代码:

 LocalDate date=LocalDate.now();
        int month=date.getMonthValue();//获取当前月份值
        int today=date.getDayOfMonth();//获取对象所在月份的第几天

中,凡是用date调用的方法都是访问器方法,即只访问对象而不修改当对象而是创造一个新对象,与之对应的有更改器方法,即访问对象并且更改当前对象。

知识点 :

在Java中 print / printf / println 的区别

1. print为一般输出,不换行也不能格式化。
2.printf主要是继承了C语言的printf的一些特性,可以进行格式化输出。
3.println为换行输出,会在输出内容结尾加上一个换行符。

 构造器,访问器,更改器的区分:

更改器就是会改变原来的数据;

例如:带 set 字眼的方法
访问器只是会查看数据;

例如:带 get 字眼的方法
而构造器就是创建。

例如:Date date=new Date();

Date()就是构造器,new Date()就是调用构造器Date()来创建date对象。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值