万年历打印Java_java实验之打印万年历

打印万年历(输入年份,月份,输出该月的日历,已知1900年1月1日是星期一),要求:

(1)编写一个方法判断闰年;

(2)编写一个方法判断某年某月有多少天;

(3)编写一个方法计算某年某月前距离1900年1月1日的总天数;(4)编写一个输出某年某月日历的方法;

(5)编写一个测试方法。

package calendar;

import java.util.Scanner;

public class calendar {

public static void main(String args[]){

int year,month,sum,sum1;

System.out.print("请输入年份:\t");

for(;;){

year=getInput();

if(year>=1900)

break;

else

System.out.println("输入错误,请重新输入!");

}

System.out.print("请输入月份:\t");

for(;;){

month=getInput();

if(month>=1&&month<=12)

break;

else

System.out.println("输入错误,请重新输入!");

}

display(year,month);

}

public static int getInput(){ //输入数据

Scanner scan=new Scanner(System.in);

int i=0;

i=scan.nextInt();

return i;

}

public static int judge(int i){ //判断是否闰年

if(i%400==0||(i%100!=0&&i%4==0))

return 0;

else

return 1;

}

public static int monthTotal(int i,int j){ //判断i年j月有多少天

int leapyear[]={31,29,31,30,31,30,31,31,30,31,30,31};

int noleapyear[]={31,28,31,30,31,30,31,31,30,31,30,31};

int n,m;

n=judge(i);

if(n==0)

m=leapyear[j-1];

else

m=noleapyear[j-1];

return m;

}

public static int yearTotal(int i,int j){ //判断i年j月前距1900年1月1日有多少天

int n,m=0;

for(int yearNumber=1900;yearNumber

if(i==1900)

break;

n=judge(yearNumber);

if(n==0)

m+=366;

else

m+=365;

}

for(int monthYear=1;monthYear

if(j==1)

break;

m+=monthTotal(i,monthYear);

}

return m;

}

public static void display(int i,int j){ //输出i年j月的日历

int sum,sum0,ss=0;

sum0=yearTotal(i,j);

sum=1+sum0%7;

System.out.println("-----"+i+"年"+j+"月-----");

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

for(int z=1;z<=sum+monthTotal(i,j);z++){

if(z<=sum){

System.out.print(" ");

ss+=1;

}

else{

System.out.print(z-sum+" ");

ss+=1;

if(z-sum<10)

System.out.print(" ");

}

if(ss%7==0)

System.out.println();

}

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值