万年历我java输出实现_JAVA实现万年历

package test;

/*

* 输出万年历

* 设定1900.01.01为起点

1970~1979

1970 4

1971 5

1972 0

1973 1

1974 2

1975 3

1976 5

1977 6

1978 0

1979 1

*/

import java.util.Scanner;

public class PermanentCalendar {

static boolean LeapYear(int year){ //判断闰年

if(year%400==0 || (year%4==0 && year%100!=0)){ //是闰年

return true;

}

else{

return false;

}

}

static final int N = 1900; //用N表示起始年份

public static void main(String[] args){

int n = 1;//1900年1月1日 是星期一

int month[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; //用来存储月份的天数

int year[] = new int[1001]; //用来存储每年1月1日是星期几

year[0] = n;

for(int i=1;i

int days = 365;

if(LeapYear(i+N-1)){//如果它的前一年是闰年则需要加366

days = 366;

year[i] = (year[i-1] + days)%7;

}

else{

year[i] = (year[i-1] + days)%7;

}

}

/*

for(int i=0;i<10;i++){

System.out.println(year[i]);

}

*/

int Month ,Year;

Scanner in = new Scanner(System.in);

System.out.println("请输入年份在(1900~2900之间):");

Year = in.nextInt();

if(Year>2900 || Year<1900){

System.out.println("输入年份不合法,请重新输入!");

return;

}

//System.out.println(year[Year-1970]);

System.out.println("请输入月份(1~12之间):");

Month = in.nextInt();

if(Month>12 || Month<1){

System.out.println("输入月份不合法,请重新输入!");

return;

}

System.out.println("星期日 " +"星期一 "+"星期二 "+"星期三 "+"星期四 "+"星期五 "+"星期六 ");

System.out.println();

if(LeapYear(Year)){ //如果是闰年,2月改为29号

month[2] = 29;

}

int day=0; //用来记录当前月的一号是今年的第几天

for(int i=1;i

day = day + month[i];

}

day = (year[Year-N]+day)%7;

for(int i=0;i<7;i++){//输出控制

if(day == i){

System.out.print(" " + 1 + " ");

if(day == 6){

System.out.println();

}

break;

}

else{

System.out.print(" ");

}

}

for(int i=2;i<=month[Month];i++){

if(i<10){

System.out.print(" " + i + " ");

}

else{

System.out.print(" " + i + " ");

}

if((day+i-1)%7 == 6){

System.out.println();

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值