效果
代码package com.jya;
import java.util.Scanner;
public class RiLi {
public static void main(String[] args) //主函数
{
Scanner input=new Scanner(System.in);
System.out.println("请输入要查询的年份:");
int year=input.nextInt();
System.out.println("请输入要查询的月份:");
int month=input.nextInt();
daYin(year,month);
}
static void daYin(int year,int month)//打印
{
daYinT(year,month);
daYinS(year,month);
}
static void daYinT(int year,int month)//打印日历头
{
System.out.print("\t "+year+"年"+"\t\t "+month+"月");
System.out.println();
System.out.println("--------------------------------------------------");
System.out.println("日\t一\t二\t三\t四\t五\t六");
}
static void daYinS(int year,int month)//打印日历体
{
int sumday=sumnum(year,month);
int monthDay=monthDay(year,month);
for(int i=1;i<=sumday%7;i++){
System.out.print("\t");
}
for(int i=1;i<=monthDay;i++){
if(sumday%7==6)
{
System.out.print(i+"\n");
}else
{
System.out.print(i+"\t");
}
sumday++;
}
}
static int sumnum(int year,int month)//求查询月份与0年之间的总天数加1
{
int sum=0;
for(int i=1900;i
{
if(PanDuan(year))
{
sum+=366;
}else
{
sum+=365;
}
}
for(int i=1;i
{
if(i==2)
{
if(PanDuan(year))
{
sum+=29;
}
else
{
sum+=28;
}
}
if(i==4||i==6||i==9||i==11)
{
sum+=30;
}
else
{
sum+=31;
}
}
sum+=1;
return sum;
}
static boolean PanDuan(int year)//判断闰年与平年
{
return year%4==0&&year%100!=0||year%400==0;
}
static int monthDay(int year,int month)//判断查询当月的天数
{
int monthDay;
if(month==2)
{
if(PanDuan(year))
{
monthDay=29;
}else{
monthDay=28;
}
}else if(month==4||month==6||month==9||month==11)
{
monthDay=30;
}else{
monthDay=31;
}
return monthDay;
}
}