package com;
import java.util.Scanner;
public class quiz9 {
//根据一个年份一个月份显示当前月份的日历布局
public static void main(String[] args) {
int c=0 , d=0 , e=0;
//控制台操作
Scanner scanner = new Scanner(System.in);
System.out.print("请输入年份:");
int b = scanner.nextInt();
System.out.print("请输入月份:");
int a = scanner.nextInt();
//关于1号是周几的算法 1900.1.1是周一
//算出输出年份与1900间有几个闰年,几个平年(不算输出年)
for(int i=1900 ; i<b ; i++){
if(i%400 == 0 || i%4 == 0 && i%100 != 0){
c += 1; //闰年个数
}else{
d += 1; //平年个数
}
}
//算出总天数
e = c * 366 + d * 365;
for(int i=1 ; i<a ; i++){
if(i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12){
e += 31;
}else if(i == 4 || i == 6 || i == 9 || i == 11){
e += 30;
}else if(i == 2){
if (b%400 == 0 || b%4 == 0 && b%100 != 0){
e += 29;
}else {
e += 28;
}
}
}
//余7算出多了几天
int f = e % 7;
//关于1号是周几的算法 1900.1.1是周一
//日历制作
System.out.println("一" + "\t" + "二" + "\t" + "三" + "\t" + "四" + "\t" + "五" + "\t" + "六" + "\t" + "日");
if(b%400==0 || b%4==0 && b%100!=0){
//是闰年
//留空
for(int i = 0 ; i<f ; i++){
System.out.print(""+"\t");
}
//进位
if(a == 2){
for(int i=1 ; i<30 ; i++){
System.out.print(i + "\t");
if((i+f)%7 == 0){
System.out.println("");
}
}
}else if(a == 1 || a == 3 || a == 5 || a == 7 || a == 8 || a == 10 || a == 12){
for(int i=1 ; i<32 ; i++){
System.out.print(i + "\t");
if((i+f)%7 == 0){
System.out.println("");
}
}
}else if(a == 4 || a == 6 || a == 9 || a == 11){
for(int i=1 ; i<32 ; i++){
System.out.print(i + "\t");
if((i+f)%7 == 0){
System.out.println("");
}
}
}
}else {
//不是闰年
//留空
for(int i = 0 ; i<f ; i++){
System.out.print(""+"\t");
}
//进位
if(a == 2){
for(int i=1 ; i<29 ; i++){
System.out.print(i + "\t");
if((i+f)%7 == 0){
System.out.println("");
}
}
}else if(a == 1 || a == 3 || a == 5 || a == 7 || a == 8 || a == 10 || a == 12){
for(int i=1 ; i<32 ; i++){
System.out.print(i + "\t");
if((i+f)%7 == 0){
System.out.println("");
}
}
}else if(a == 4 || a == 6 || a == 9 || a == 11){
for(int i=1 ; i<32 ; i++){
System.out.print(i + "\t");
if((i+f)%7 == 0){
System.out.println("");
}
}
}
}
}
}
例如:
2015年3月