【java】打印部分日历

来源:互联网 发布:网络购物安全问题 编辑:程序博客网 时间:2024/04/30 10:31
import java.util.Scanner;public class pra4 {public static void main(String[] args){Scanner input = new Scanner(System.in);System.out.print("Enter the year and month: ");int year = input.nextInt();int j = year/100;int m = input.nextInt();if(m==1){m = 13;    year--;}else if(m==2){m = 14;year--;}int k = year%100;int q = mday(m,year);int a = (int)(26*m+26)/10;int b = k/4;int c = j/4;int d = 5*j;int h = (1+a+k+b+c+d)%7;print(m,year);int count = 0;int cc =0;if(h==0){System.out.println("                       ");System.out.printf("1");for(int y = 2;y<=mday(m,year);y++){if(y<10)    System.out.printf("   "+y);elseSystem.out.printf("  "+y);count++;if(count%7==0)System.out.print('\n');}}else{for(int s = h-1;s>0;s--){System.out.print("    ");}for(int y = 1;y<=mday(m,year);y++){if(y<10)    System.out.printf("   "+y);elseSystem.out.printf("  "+y);count++;if((count+h-1)%7==0)System.out.print('\n');}}}public static int mday(int m,int year){int a = 0;switch(m){case 13:  a = 31;break;case 14:  {if(isleap(year)){     a = 29;     break;}    else {      a = 28;     break;    }}case 3: a = 31;break;case 4: a = 30;break;case 5: a = 31;break;case 6: a = 30;break;case 7: a = 31;break;case 8: a = 31;break;case 9: a = 30;break;case 10: a = 31;break;case 11: a = 30;break;case 12: a = 31;break;}return a;}public static boolean isleap(int year){if((year%4==0&&year%100!=0)||year%400==0)return true;elsereturn false; }public static void print(int m,int year){if(m==13||m==14){System.out.println("      "+year+"     "+(m-12)+"    ");System.out.println("----------------------------");System.out.println(" Sun Mon Tue Wed Thu Fri Sat");}else{System.out.println("        "+year+"     "+m+"      ");System.out.println(" Sun Mon Tue Wed Thu Fri Sat");System.out.println("----------------------------");}}}

0 0
原创粉丝点击