JAVA实现输出当前的日历日期
import java.time.LocalDate;
import java.time.*;
public class CalendarTest
{
public static void main(String[] args)
{
LocalDate date = LocalDate.now();//先得到现在的日期:Date:2019-04-15
int month = date.getMonthValue();//得到当前的月份:4月
int today = date.getDayOfMonth();//得到当前的日子:15号
date = date.minusDays(today - 1);//将Date更新为该月的第一天即:Date:2019-04-01
//因为getDayOfMonth()方法是得到当前月已经过去的日子数要得到该月的第一天就要用当前的日子减去(已经过去的日子数-1)
DayOfWeek weekday = date.getDayOfWeek();//得到当前日期为星期几,得到的是字符串即:MONDAY
int value = weekday.getValue();//将字符串转换为数字1
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());//以%3d的格式输出当前的日子
if(date.getDayOfMonth() == today)//如果这个日子等于今天
{
System.out.print("*");//输出一个*标记
}
else
{
System.out.print(" ");//否则输出空格
}
date = date.plusDays(1);//将日子延迟一天
if(date.getDayOfWeek().getValue() == 1)System.out.println();//如果延迟之后为星期1就换行
}
if(date.getDayOfWeek().getValue() != 1)System.out.println();//如果是星期1的话,在循环里面就输出换行了,没必要在输出一个换行。
}
}
