java for 循环根据一个日期 获取这个月的每一天_用Java程序实现日历功能

本文介绍了如何使用Java编程实现一个简单的日历功能,通过for循环根据用户输入的日期获取该月的每一天,并展示在日历上。程序包括键盘录入日期、日期转换、判断一个月的第一天是星期几以及填充日历空白等步骤。
摘要由CSDN通过智能技术生成

951637d9c8d6708069d7548d6c60a6a5.png

今天我们来用java做一个万年历

b37b5e3e1233c3f024f2807dae0de606.png

分析:

看到这个效果图,首先我们要看我们会的地方,从我们会的地方开始

1.第一句是一串文字我们直接打印输出就可以了,这里要用一个键盘录入

b1c64c42488c86ccf59ac68b2dd32c0e.png

2.第二步我们要做的是把我们的日期用for循环表示出来

e882c6e2a9af0712e6b2c20eac43c12b.png

3.第三步我们需要调整格式,首先分析这个输入的日期,我们要把输入的String类型首先转换成日期的类型,然后再把日期的类型转化为格林时间,目的是为了我们获取具体的时间

80e8ce86817ce458d5af2ac647aafd48.png

4.我们需要把判断设置当前月的一号是星期几,进行get数据,然后就知道日历前面需要空几个空格,根据月份判断每月的天数,根据具体哪天标记*

717070f0b1c3b9602e2868f887c50144.png

以下是完整代码:

package cn.sxs.test;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Scanner;

public class Test004 {
	public static void main(String[] args) throws ParseException {
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个日期:yyyy-MM-dd");
		String str=input.next();
		//创建DateFormat对象用于将String转化为时间对象
		DateFormat df=new SimpleDateFormat("yyyy-MM-dd");
		Date d =df.parse(str);
		//将Date对象所表示的时间设置Calendar中
		Calendar cal = new GregorianCalendar();
		cal.setTime(d);
		//获取输入的日期中的date部分
		int nowDate=cal.get(Calendar.DAY_OF_MONTH);
		//设置将日期设置为1号
		cal.set(Calendar.DAY_OF_MONTH,1);
		//获取一号是星期几
		int dayOfWeek =cal.get(Calendar.DAY_OF_WEEK);
		
		System.out.println("日t一t二t三t四t五t六");
		for(int i =1;i<dayOfWeek;i++) {
			System.out.print("t");
		}
		//获取月份最后一天
		int maxDay=cal.getActualMaximum(Calendar.DAY_OF_MONTH);
		for(int i=1;i<=maxDay;i++) {
			System.out.print(i);
			if(i==nowDate) {
				System.out.print("*");
			}
			System.out.print("t");
			if(cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY) {
				System.out.println();
			}
			cal.add(Calendar.DAY_OF_MONTH, 1);
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值