用java实现打印日历的方法

用java实现打印日历的方法

* 打印2016年的日历方法
*/
public static void printCalendar(){
for (int i = 1; i <= 12; i++) {
System.out.println("2016年"+i+"月");
System.out.println("-------------------------------------");
System.out.println("日\t一\t二\t三\t四\t五\t六");
int days = getDays(i);//得到第i月有多少天
for(int j = 1 ; j <= days ; j++){
int numDay = getNumDay(i, j);//得到i月j号是2016年第几天
int week = getWek(numDay);//得到i月j号是周几
if(j==1){//号数是一号的时候
String temp = "";//补空位的字符串
for (int k = 0; k < week; k++) {
temp = temp+"\t";
}
if(week == 6){//如果1号是周六。输出以后就要换行
System.out.println(temp+j);
}else{//如果不是,就不需要了
System.out.print(temp+j+"\t");
}
}else if(week == 6|| j == days){//不是一号但是是周六或者是该月的最后一天,输出以后就要换行
System.out.println(j);
}else{//就不是周六也不是一号也不是该月最后一天
System.out.print(j+"\t");
}
}
System.out.println("*****************************************");
}
}
/**
* 根据该天是这一年的第几天,得到这一天是周几
* @param numDay 这一年的第几天
* @return 周几
*/
public static int getWek(int numDay){
switch(numDay%7){
case 1:
return 5;
case 2:
return 6;
case 3:
return 0;
case 4:
return 1;
case 5:
return 2;
case 6:
return 3;
case 0:
return 4;
}
return 0;
}
/**
* 根据输入的几月几号,得到这一天是这一年的第几天
* @param month 几月
* @param date 几号
* @return 第几天
*/
//5 10
public static int getNumDay(int month,int date){
int numDay=0;//天数
//将指定的月份前几个月的天数累加
for (int i = 1; i < month; i++) {
int days = getDays(i);//赋值调用,得到第i月的天数
numDay = numDay + days;
}
//将指定的天数加起来
numDay = numDay+date;
return numDay;
}
/**
* 根据输入的月份得到该月的天数
*
* @param month 输入的月份
* @return 该月的天数
*/
public static int getDays(int month) {
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
return 29;
}
return 0;
}

}


猜你喜欢

转载自blog.csdn.net/qq_37529302/article/details/58626692
今日推荐