编写Java程序,制作万年历。

package com.nfsbbs.wang;

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

public class VisualCalendar {
	public static void main(String[] args) throws ParseException{	//异常抛出
		System.out.println("请输入日期(按照格式:201705):");
		
		//输入日期并格式化为yyyyMM
		Scanner sc = new Scanner(System.in);
		String df = sc.nextLine();
		DateFormat format = new SimpleDateFormat("yyyyMM");
		Date da = format.parse(df);
		
		System.out.println("日\t一\t二\t三\t四\t五\t六\t");
		
		//把格式化后的日期输入日历
		Calendar ca = new GregorianCalendar();
		ca.setTime(da);
		ca.set(Calendar.DATE,1);	//确定第一天
		for(int i = 1; i < ca.get(Calendar.DAY_OF_WEEK); i++){	//在日历上显示月初是星期几
			System.out.print("\t");
		}
		
		//主循环
		int md = ca.getActualMaximum(Calendar.DATE);	//获取本月最大天数
		for(int i = 1; i <= md; i++){
			System.out.print(i + "\t");
			
			int w = ca.get(Calendar.DAY_OF_WEEK);	//获取当前是周几,每到周六换行
			if(w == Calendar.SATURDAY){
				System.out.println();
			}
			ca.add(Calendar.DATE,1);	//日期+1,重新循环
		}
	}
}

输出如下:

请输入日期(按照格式:201707):
201702
日	一	二	三	四	五	六	
			1	2	3	4	
5	6	7	8	9	10	11	
12	13	14	15	16	17	18	
19	20	21	22	23	24	25	
26	27	28	


你可能感兴趣的:(Java)