Day-01 Java_当前月的日历

Day-01 Java_当前月的日历

程序要求

在这里插入图片描述

将当前月份按图示输出,当前日加*表示,以及给定日期相应是星期几。

程序设计思路

1、首先构造一个日历对象,并且用当前的日期和时间进行初始化

LocalDate date = LocalDate.now();

2、获取当前月和日

int month = date.getMonthValue();
int today = date.getDaysOfMonth();

3、将Date设置为这个月第一天,并得到这一天为周几
miusDays() :是减去当前天数,假定今天是10号,第一天是1号,想得到1,就要用10-(10-1),10-1就是day-1
weekday : 将变量weekday设置为Dayweek类型的对象。
getValue() : 调用这个对象的方法来得到周几的一个数值。

date = date.minusDays(today - 1);//minusDays是减去当前天数
DayOfWeek weekday = date.getDayOfweek();
int value = weekday.getValue();//1=周一,以此类推

4、日历第一行需要缩进,及将1号与星期对应
value:为之前获得1号的星期

System.out.println("   周日        周一     周二     周三    周四     周五     周六");
for(int i = 1;i<value;i++ ){
	System.out.print("    ");
}	

5、打印日历主体
1、当month等于本月,date就继续迭代
2、当为周日时进行换行,表示一周完成

while(date.getMonthVaule() == month){
	System.out.printf("%3d",date.getDayOfMonth());
	if(date.getDayOfMonth() == today)
		System.out.print("*");
	else
		date = date.plusDays(1);//每次循环date+1
	if(date.getDayOfWeek.getVaule()==7)
		System.out.println();
}

完整程序

package tast;
import java.time.*;

class test {
	public static void main(String[] args) {
		LocalDate date = LocalDate.now();
		int month = date.getMonthValue();
		int today = date.getDayOfMonth();
		date = date.minusDays(today - 1);// 将date设置为这个月的第一天,minusDays减去指定天数
		DayOfWeek weekday = date.getDayOfWeek();// 得到这一天为周几
		int value = weekday.getValue();	 // 1为周一
		System.out.println("   周日        周一     周二     周三    周四     周五     周六");
		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() == 7)
				System.out.println();

		}
		if (date.getDayOfWeek().getValue() != 7)
			System.out.println();
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值