制作一个日历表

如何制作日历表

首先要明白 Date类,DateFormat类,Calendar类分别是干什么的,它们有什么方法,可以实现什么功能,只有明白了这些,才能够制作一个日历表
Date类:setTime(long date) ,使用给定的毫秒时间值设置现有的 Date对象。
Date类大多方法已经弃用了,常用的就是这个,一般用他的子类DateFormat较多
Dateformat类:可以实现字符串和时间对象的转化,格式化这个变量
有format()和parse()方法是常用的;
Calendar类:现在有关日期计算大多用这个类的方法
setTime()和getTime()常用,还有使用Calendar的子类对象调用一些常用的方法
下面是我今天做的一个简易的日历表,

package AK.homeWork;

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 testcalen {
	public static void main(String[] args) {
		Scanner inScanner =new Scanner(System.in);
		System.out.println("请输入日期:");
		String string=inScanner.nextLine();
		DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");//建一个DateFormat对象格式化输入年月日
		Date date;
		try {
			date = dateFormat.parse(string);//将一个字符串格式化为一个时间对象
			Calendar calendar=new GregorianCalendar();//建一个日历对象Calendar
			calendar.setTime(date);        //调用setTime()方法,将时间对象带进去
			int s=calendar.get(Calendar.DATE);//提前得到设置的日期保存在s中
			calendar.set(Calendar.DATE,1);  //设置日期为一号
			System.out.println(calendar.get(Calendar.DAY_OF_WEEK));//输出这个一号是星期几
			System.out.println(calendar.getActualMaximum(Calendar.DATE));//输出这个月最大的天数
			
			
			System.out.println("日\t一\t二\t三\t四\t五\t六");
			for(int i=1;i<calendar.get(Calendar.DAY_OF_WEEK);i++) {
				System.out.print('\t');   //看一号是周几,然后比这个这个周几小的全部空格代替
			}
			
			for(int i=1;i<=calendar.getActualMaximum(Calendar.DATE);i++) {
				if(s==i) {           //当预存的日期和输出的日期相等时
					System.out.print("*");  //在当日上面有*号
				}
				System.out.print(i+"\t");    //输出几号并空格隔开
				if(calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY) {
					System.out.print('\n');   //当得到的日期为周六时换行
				}
				calendar.add(Calendar.DATE,1);  //每循环完一次,日期就加一
			}
		} catch (ParseException e) {
			e.printStackTrace();
		}
		
	}
}

上面都有注释,关于我自己的见解,有不对的地方欢迎大家指出来共同学习。

发布了23 篇原创文章 · 获赞 12 · 访问量 1581

猜你喜欢

转载自blog.csdn.net/weixin_45607985/article/details/102557330