用java写一个打印月历的程序

学习了Date以及Calendar不少朋友还有些疑惑,下面通过一个月历程序让大家有更深的理解,希望能够帮助到大家。

如果我写的不好或者有需要改进的地方,欢迎广大朋友在评论区留言,我看到都会一一回复。

程序描述:输入一个月份打印出这个月份的日历

代码如下:

package com.etc.work;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
 //实现打印出某月的一个日历
public class Test2 {
          //关键是要得出这个月的第一天是星期几,以及这个月一共有几天
	public static void main(String[] args) throws ParseException {
		System.out.print("请输入日期(建议格式如2018-03):");
		Scanner sc = new Scanner(System.in);
		String input_Date=sc.next();
		SimpleDateFormat  simp=new SimpleDateFormat("yyyy-MM");
		//字符串转换Date
		Date date=simp.parse(input_Date);  //默认1号 0时
		 Calendar newDate=Calendar.getInstance();
	     newDate.setTime(date);
		int week=newDate.get(Calendar.DAY_OF_WEEK)-1; //得出该月的第一天是星期几
		int day=newDate.getActualMaximum(Calendar.DATE);   //得出该月一共有几天
		System.out.println("该月份日历如下:");
		System.out.println("日         一          二         三         四         五         六");
		for(int a=1;a<=week;a++) {
			System.out.print("       ");
		}
		for(int i=1;i<=day;i++) {
			
			
			System.out.print(i);
			if(i<10) {
				System.out.print("      ");	  //因为十位数比个位数多一个空格的占用间隔,个位数打印6个空格,十位数打印5个空格。
			}else {
				System.out.print("     ");
				
			}
			
			
			week++;
			if(week==7) {                      //如果一个星期满了就换行输出
				System.out.print("\n");
				week=0;
			}
		}
	}

}




其中涉及到了Date转化为Calendar,原因是因为Calendar提供了一些方法,比较好操作。
运行结果如图:
在这里插入图片描述

原创文章 10 获赞 12 访问量 843

猜你喜欢

转载自blog.csdn.net/bookssea/article/details/105887106