import java.util.Scanner;
public class year {
public static void main(String[] args) {
int daysOfMonth=0; //记录输入日期的那个月有多少天
int daysOfMonths=0; //记录输入日期距离输入年份第一天有多少天
int daysOfYears=0; //记录输入日期的那个月的1号距离1900年1月1号多少天
int month=0; //记录距离输入的月份
int year=0; //记录距离输入的年份
System.out.println("**********************欢迎使用万年历*************************");
Scanner sc =new Scanner(System.in);
System.out.println("请输入年份:");
year=sc.nextInt();
System.out.println("请输入月份:");
month=sc.nextInt();
boolean isRun=year%400==0||year%4==0&&year%100!=0;//输入年份是否为闰年
switch(month){
case 2:
if(isRun){
daysOfMonth=29;
}
else{
daysOfMonth=28;
}
break;
case 4:
case 6:
case 9:
case 11:
daysOfMonth=30;
break;
default:
daysOfMonth=31;
}
for(int i=1;i<month;i++)//计算输入日期距离输入年份第一天多少天
{
switch(i){
case 2:
if(isRun){
daysOfMonths+=29;
}
else{
daysOfMonths+=28;
}
break;
case 4:
case 6:
case 9:
case 11:
daysOfMonths+=30;
break;
// case 1:
// case 3:
// case 5:
// case 7:
// case 8:
// case 10:
// case 12:
default :
daysOfMonths+=31;
}
}
for(int i=1900;i<year;i++)//计算输入年份距离1900年1月1日多少天
{
//!!!!!年份一直再改变,定义时要小心
if(i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
{
daysOfYears+=366;
}
else{
daysOfYears+=365;
}
}
daysOfYears+=daysOfMonths;//daysOfYears现在的值为输入日期的那个月的一号距离1900年1月1日多少天
int xqj=1+daysOfYears%7; //计算输入月份的第一天是星期几
//开始按照格式输出该日历
System.out.println(xqj);
System.out.println(daysOfYears-31);
System.out.println("\n星期日\t"+"星期一\t"+"星期二\t"+"星期三\t"+"星期四\t"+"星期五\t"+"星期六");
for(int i=0;i<xqj;i++)
{
if(xqj==7)
continue;
System.out.print("\t");
}
int temp=xqj;//用于计算什么时候换行,什么时候是输出制表符
for(int i=1;i<=daysOfMonth;i++){
temp++;
if(temp%7==0)
{
System.out.print(i+"\n");
}
else{
System.out.print(i+"\t");
}
}
}
}
万年历方法一
最新推荐文章于 2024-06-07 15:42:49 发布