public class Calendar {
private int year;
private int month;
int t;
public Calendar ( ) { }
public Calendar ( int year, int month) {
this . year = year;
this . month = month;
}
public int startweekday ( ) {
t= ( year- 1 ) + ( ( year- 1 ) / 4 - ( year- 1 ) / 100 + ( year- 1 ) / 400 ) ;
return ( t% 7 + 1 ) ;
}
public int monthweekday ( ) {
Calendar c = new Calendar ( year, month) ;
int start = c. startweekday ( ) ;
int start1;
if ( year/ 400 != 0 ) {
if ( month == 1 ) {
start1 = start;
} else if ( month== 2 ) {
start1 = ( start + 31 % 7 ) % 7 ;
return start1;
} else if ( month <= 7 ) {
int m1 = ( month- 2 ) / 2 ;
if ( ( month- 2 ) % 2 == 0 ) {
start1 = ( ( 31 + 28 + 31 * m1 + ( m1 - 1 ) * 30 ) % 7 + start) % 7 ;
return start1;
} else {
start1 = ( ( 31 + 28 + 31 * m1 + 30 * m1) % 7 + start) % 7 ;
return start1;
}
} else {
int m2 = 28 + 30 * 2 + 31 * 4 ;
int m1 = ( month- 7 ) / 2 ;
if ( ( month- 7 ) % 2 == 0 ) {
start1 = ( ( m2 + 31 * m1 + ( m1 - 1 ) * 30 ) % 7 + start) % 7 ;
return start1;
} else {
start1 = ( start + ( m2 + 31 * m1 + 30 * m1) % 7 ) % 7 ;
return start1;
}
}
} else {
if ( month == 1 ) {
start1 = start;
} else if ( month== 2 ) {
start1 = ( start + 31 % 7 ) % 7 ;
return start1;
} else if ( month <= 7 ) {
int m1 = ( month- 2 ) / 2 ;
if ( ( month- 2 ) % 2 == 0 ) {
start1 = ( ( 31 + 28 + 31 * m1 + ( m1 - 1 ) * 30 ) % 7 + start) % 7 ;
return start1;
} else {
start1 = ( ( 31 + 28 + 31 * m1 + 30 * m1) % 7 + start) % 7 ;
return start1;
}
} else {
int m2 = 28 + 30 * 2 + 31 * 4 ;
int m1 = ( month- 7 ) / 2 ;
if ( ( month- 7 ) % 2 == 0 ) {
start1 = ( ( m2 + 31 * m1 + ( m1 - 1 ) * 30 ) % 7 + start) % 7 ;
return start1;
} else {
start1 = ( start + ( m2 + 31 * m1 + 30 * m1) % 7 ) % 7 ;
return start1;
}
}
}
return 1000000000 ;
}
public void print ( ) {
System. out. print ( "日" + " " + "一" + " " + "二" + " " + "三" + " " + "四" + " " + "五" + " " + "六" ) ;
System. out. println ( ) ;
Calendar c = new Calendar ( year, month) ;
int monthstart = c. monthweekday ( ) ;
int [ ] [ ] mon = new int [ 6 ] [ 7 ] ;
int date = 0 ;
for ( int i = 0 ; i< 6 ; i++ ) {
for ( int j = 0 ; j< 7 ; j++ ) {
if ( i == 0 & j< monthstart) {
mon[ i] [ j] = 0 ;
System. out. print ( " " ) ;
} else {
date = date + 1 ;
if ( date > 31 ) { break ; }
mon[ i] [ j] = date;
if ( date < 10 ) {
System. out. print ( mon[ i] [ j] + " " ) ;
} else {
System. out. print ( mon[ i] [ j] + " " ) ;
}
}
}
System. out. println ( ) ;
}
}
}
import java. util. Scanner;
public class test {
public static void main ( String[ ] args) {
Scanner in = new Scanner ( System. in) ;
System. out. println ( "请输入年份" ) ;
int y = in. nextInt ( ) ;
System. out. println ( "请输入月份" ) ;
int m = in. nextInt ( ) ;
Calendar c = new Calendar ( y, m) ;
c. print ( ) ;
}
}