package test2;
import java.util.Scanner;
public class Demo {
public static void main(String args[]){
Scanner input=new Scanner(System.in);
boolean in1=false;
boolean in2=false;
int year;
int month;
int year_day=0;
int month_day=0;
int day_count;
int week;//星期几
int month_days=0;
int Space=0;
int c;
int ln=1;//作为第二行输出开始换行的计数器
do{
System.out.println("请输入年份:");
year=input.nextInt();
if(year<0){
System.out.println("年份输入错误,请重新输入");
in1=true;
}else{in1=false;}
}while(in1);
do{
System.out.println("请输入月份:");
month=input.nextInt();
if(month>12||month<1){
System.out.println("月份输入错误,请重新输入");
in2=true;
}else{in2=false;}
}while(in2);
/*for循环计算出year_day,即1900年到输入的年(year)之间的天数*/
for(int a=1900,day;a<year;a++){
if((a%4==0&a%100!=0)|a%400==0){
day=366;
}else{day=365;}
year_day=year_day+day;
}
/*for循环计算初month_day,即year年1月到输入的月份(month)之前的天数*/
for(int b=1;b<month;b++){
switch(b){
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
month_day=month_day+31;
break;
case 4:case 6:case 9:case 11:
month_day=month_day+30;
break;
case 2:
if((year%4==0&year%100!=0)|year%400==0){
month_day=month_day+28;
}else{month_day=month_day+27;
}break;
}
}
day_count=year_day+(month_day+1);
week=day_count%7+1;
System.out.println("/t/t/t"+year+"年"+month+"月/n");
System.out.println("星期日/t星期一/t星期二/t星期三/t星期四/t星期五/t星期六");
//Space为月份开头的空格数
for(;Space<week;Space++){
System.out.print("/t");
}
switch(month){
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
month_days=31;
break;
case 4:case 6:case 9:case 11:
month_days=30;
break;
case 2:
if((year%4==0&year%100!=0)|year%400==0){
month_days=28;
}else{month_days=27;
}break;
}
//打印第一行日期
for(c=1;c<=(7-Space);c++ ){
System.out.print(c+"/t");
}
System.out.println();
for(;c<=month_days;c++,ln++){
System.out.print(c+"/t");
if(ln%7==0){
System.out.println();
}
}
}
}
import java.util.Scanner;
public class Demo {
public static void main(String args[]){
Scanner input=new Scanner(System.in);
boolean in1=false;
boolean in2=false;
int year;
int month;
int year_day=0;
int month_day=0;
int day_count;
int week;//星期几
int month_days=0;
int Space=0;
int c;
int ln=1;//作为第二行输出开始换行的计数器
do{
System.out.println("请输入年份:");
year=input.nextInt();
if(year<0){
System.out.println("年份输入错误,请重新输入");
in1=true;
}else{in1=false;}
}while(in1);
do{
System.out.println("请输入月份:");
month=input.nextInt();
if(month>12||month<1){
System.out.println("月份输入错误,请重新输入");
in2=true;
}else{in2=false;}
}while(in2);
/*for循环计算出year_day,即1900年到输入的年(year)之间的天数*/
for(int a=1900,day;a<year;a++){
if((a%4==0&a%100!=0)|a%400==0){
day=366;
}else{day=365;}
year_day=year_day+day;
}
/*for循环计算初month_day,即year年1月到输入的月份(month)之前的天数*/
for(int b=1;b<month;b++){
switch(b){
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
month_day=month_day+31;
break;
case 4:case 6:case 9:case 11:
month_day=month_day+30;
break;
case 2:
if((year%4==0&year%100!=0)|year%400==0){
month_day=month_day+28;
}else{month_day=month_day+27;
}break;
}
}
day_count=year_day+(month_day+1);
week=day_count%7+1;
System.out.println("/t/t/t"+year+"年"+month+"月/n");
System.out.println("星期日/t星期一/t星期二/t星期三/t星期四/t星期五/t星期六");
//Space为月份开头的空格数
for(;Space<week;Space++){
System.out.print("/t");
}
switch(month){
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
month_days=31;
break;
case 4:case 6:case 9:case 11:
month_days=30;
break;
case 2:
if((year%4==0&year%100!=0)|year%400==0){
month_days=28;
}else{month_days=27;
}break;
}
//打印第一行日期
for(c=1;c<=(7-Space);c++ ){
System.out.print(c+"/t");
}
System.out.println();
for(;c<=month_days;c++,ln++){
System.out.print(c+"/t");
if(ln%7==0){
System.out.println();
}
}
}
}