java实现万年历

用java实现万年历小功能

思路:

万年历
//1:需要确定该年份的这个月一共有多少天
//2 : 该月份的1号是星期几
//3: 输出过程中不能有换行标识,只有输出了一周的信息才可以换行

public class Wnl {
	public static void main(String[] args) {
		//万年历
		//1:需要确定该年份的这个月一共有多少天
		//2 : 该月份的1号是星期几
		//3:  输出过程中不能有换行标识,只有输出了一周的信息才可以换行
		
		Scanner input = new Scanner(System.in);
		
		//输入月份和年份确定该月有多少天
		System.out.println("输入年份");
		int year = input.nextInt();
		System.out.println("输入月份");
		int month = input.nextInt();
		int days =0;
		boolean isRright = true;  //用于标识月份输入是否正确,默认正确
		//使用定值判断判断月份 
		switch(month){
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
			days=31;
			break;
		case 2:
			if((year % 4 ==0 && year%100==0) || year%400==0)
				days = 29;
			else
				days=28;
			break;
		case 4:
		case 6:
		case 9:
		case 11:
			days = 30;
			break;
		default:	
			isRright = false;  //月份输入错误
		}
		
		//如果输入的信息错误,直接退出
		if(isRright== false){
			System.out.println("输入月份有误");
			return;
		}
		
		//确定该月的1号是星期几
		//根据输入的年份和月份获取一个日期对象,利用日期对象获取该日期对象是星期几
		try{
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Date date= sdf.parse(year+"-"+month+"-01");
			int weekday =  date.getDay();  //用于获取指定日期的星期几(0周日-6周六)
			 
			
			//开始输出日历
			System.out.println(year+"-"+month+"  的日历");
			System.out.println("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
			//输出一号之前的空格
			for(int i =1;i<=weekday;i++){
				System.out.print("\t");
			}
			//根据该月有多少天,输出日历
			for(int i =1;i<=days;i++){
				System.out.print(i+"\t");
				//如果输出了一周的信息则换行
				if((i+weekday)%7==0){
					System.out.print("\n");
				}
			}
		}catch(Exception ex){
			ex.printStackTrace();
		}
		
	}
}

截图:java实现万年历_第1张图片

你可能感兴趣的:(java,编程)