JAVA打印简易版日历

编写一个应用程序,输出某年某月的日历。


package cn.edu.nefu.zhihu;

import java.util.Calendar;
import java.util.Scanner;

public class CalenClass {
	
	static int days(int year,int month){
		int days=0;
		switch (month){
		case 1: days=31;break;
		case 2: 
			if((year%4==0&&year%100!=0)||year%400==0)days=29;
			else days=28;break;
		case 3: days=31;break;
		case 4: days=30;break;
		case 5: days=31;break;
		case 6: days=30;break;
		case 7: days=31;break;
		case 8: days=31;break;
		case 9: days=30;break;
		case 10: days=31;break;
		case 11: days=30;break;
		case 12: days=31;break;
		default: days=0;break;
		}
		return days;
	}
	
	public static void main(String[] args) {
		Calendar riLi=Calendar.getInstance();
		Scanner reader=new Scanner(System.in);
		int year,month;
		year=reader.nextInt();
		month=reader.nextInt();
		riLi.set(year, month-1, 1);
		int w=riLi.get(Calendar.DAY_OF_WEEK)-1;
		int s[]=new int[42];
		int d=days(year,month);
		int d1=0;
		if(month==1){
			d1=days(year-1,12);
		}
		else d1=days(year,month-1);
		if(w==0){
			for(int i=6;i>=0;i--,d1--){
				s[i]=d1;
				//System.out.println(s[i]);
			}
			w=7;
		}
		else{
			for(int i=w-1;i>=0;i--,d1--){
				s[i]=d1;
				//System.out.println(s[i]);
			}
		}
		int k=1;
		for(int i=w;i<w+d;i++,k++){
			s[i]=k;
		}
		k=1;
		for(int i=w+d;i<s.length;i++,k++){
			s[i]=k;
		}
		System.out.println("    "+year+"年"+month+"月");
		System.out.println("日   一   二   三   四   五   六");
		int idx=0;
		for(int i=0;i<6;i++){
			for(int j=0;j<7;j++){
				System.out.printf("%-2d ",s[idx++]);
			}
			System.out.println();
		}
	}

}


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