java计算某月份天数和星期

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_41293896/article/details/90274245

需求:

显示当前月的日历,如何计算某月份的天数以及一个给定日期相应的是星期几。

思路:

1.构造一个日历对象,并用当前的日期和时间初始化。
2.将date设置为这个月的第一天,并得到这一天是星期几。
3.变量weekday设置为DayOfWeek类型的对象。
4.打印表头和第一行缩进 。
5.打印日历主体。

package com.ji;

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

/**
 * 需求:显示当前月的日历,如何计算某月份的天数以及一个给定日期相应的是星期几。
 * 思路:1.构造一个日历对象,并用当前的日期和时间初始化。
 * 		2.将date设置为这个月的第一天,并得到这一天是星期几。
 * 		3.变量weekday设置为DayOfWeek类型的对象。
 * 		4.打印表头和第一行缩进
 * 		5.打印日历主体
 * @author eleven
 *
 */
public class ClendarTest {
	public static void main(String[] args) {
		// 1.构造日历对象
		LocalDate date = LocalDate.now(); // now表示当前日期
		// 2.对当前日期和时间初始化
		int month = date.getMonthValue(); // 月
		int today = date.getDayOfMonth(); // 日
		
		// 3.将date设置为这个月的第一天。
		date = date.minusDays(today - 1);// minusDay表示生成当前日期之前n天的日期
		// 4.并得到这一天是星期几。
		DayOfWeek weekday = date.getDayOfWeek(); // 将weekday设置为DayOfWeek类型的对象
		int value = weekday.getValue(); // 调用weekday里面的getValue方法来得到星期几的一个数值
		
		// 5.打印表头和第一行缩进。
		System.out.println("一  二  三  四  五  六  七"); // 表头
		for (int i = 1; i < value; i++) 
			System.out.print(" 	"); // 第一行缩进
		// 6.打印日历的主体
		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); // plusDay表示生成当前日期之后n天的日期
			if(date.getDayOfWeek().getValue() == 1) System.out.println();
		}
		if(date.getDayOfWeek().getValue() != 1) System.out.println();
	}
}

控制台效果:
在这里插入图片描述
有一点小问题,有大神的话,还希望可以指出来鸭。

猜你喜欢

转载自blog.csdn.net/qq_41293896/article/details/90274245
今日推荐