java练习-任务1.3挑战-日历

**任务要求:**在这里我们实现一个可以查看任意日期的日历
**任务分析:**首先,我们要考虑将输入的字符串转化为日期格式,并将输入的日期设置为“当前日期”;其次,我们要找到每个月一号是星期几,这样才能在这个月份中进行排序。
运行结果:
在这里插入图片描述
在这里插入图片描述
程序代码:

package test10_25;
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 test1_3b {
	public static void main(String[] args) throws ParseException 
	{
		System.out.println("请输入一个日期:yyyy-MM-dd");//输出提示信息
		Scanner reader = new Scanner(System.in);
		String str=reader.nextLine();//读入信息
		
		DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
		Date date = format.parse(str);	//将字符串转化为指定的日期格式
		
		Calendar cal = new GregorianCalendar();
		cal.setTime(date);	//将输入日期设置为当前日期

		int day_m=cal.get(Calendar.DATE);//得到当前日期是这个月的哪一天
		cal.set(Calendar.DATE, 1);
		
		int first_day =cal.get(Calendar.DAY_OF_WEEK);
		int final_day=cal.getActualMaximum(Calendar.DAY_OF_MONTH);//获取月份最后一天

		System.out.println("日\t一\t二\t三\t四\t五\t六");
		for(int i =1;i<first_day;i++) {
			System.out.print("\t");
		}
		
		for(int i=1;i<=final_day;i++) {
			System.out.print(i);
			if(i==day_m) {
				System.out.print("*");
			}
			System.out.print("\t");
			
			  if((i-(8-first_day))%7 == 0) {//7天为一个循环 输出所有的数
                  System.out.println("\n");
                  
           }
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值