应用LocalDay类实现显示当月日历
Java代码实现
import java.time.*;
public class CalenderTest {
public static void main(String[] args) {
LocalDate date = LocalDate.now();
//第一个LocalDate表示数据类型(返回值类型),第二个LocalDate表示构造函数
int month = date.getMonthValue();
int today = date.getDayOfMonth();
//getYear、getMonthValue()、getDayOfMonth()数据类型为Int
date = date.minusDays( today - 1 );//将date转化为本月第一天
//minusDays方法数据类型为LocalDate
DayOfWeek weekday = date.getDayOfWeek();
//getDayOfWeek()数据类型是DayOfWeek
int value = weekday.getValue();
//getValue()表示将数据类型由DayOfWeek转化为int
System.out.println("Sun Mon Tue Wed Thu Fri Sat");
for(int i = 0;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()==7) System.out.println();
}
}
}
对象和对象变量知识点
- 由类构造对象的过程称为创建类的实例,要用构造器(构造函数)构造新的实例,构造器名字应与实例名字相同。
Date birthday = new Date();
//第一个Date是变量类型,第二个Date是构造函数
//birthday是对象变量,并没有实际包含对象,只是引用对象
//new Date()构造Date类型对象,new 的值是对新创建的对象的引用
//birthday = new Date()将引用储存在变量birthday中
-
LocalDate类
LocalDate.now()构造一个新对象,表示构造这个对象时的日期
getYear、getMonthValue()、getDayOfMonth()得到年月日,数据类型为Int(getMonth方法虽然也返回一个值,但它的本质是对象,getMonth().getValue==getMonthValue())
LocalDate minusDays(n)生成当前日期前n天的日期
DayOfWeek getDayOfWeek()方法返回值类型是DayOfWeek
LocalDate plusDays()表示加n天,该方法会生成一个新的LocalDate对象,原对象不会有任何改动 -
printf & print & println
printf类似C语言用法,可以加入类似”%3d“形式
print与println的区别在于:println会自动换行,而print不会 -
import与使用方法的关系
以getDayOfWeek方法为例,getDayOfWeek()返回值类型是DayOfWeek,在LocalDate类中,调用该方法需要import LocalDate类
import java.time.*;或import java.time.LocalDate;