package com.qianfeng.test;
import java.util.Random;
import java.util.Scanner;
public class Demo1
{
public static void main(String[] args)
{
Scanner sc =new Scanner(System.in);
System.out.println("输入年");
int year=sc.nextInt();
System.out.println("输入月");
int month=sc.nextInt();
//先判断输入年是不是闰年
int is=0;//用来标识输入年是不是闰年0代表不是,1代表是
if(year%4==0&&year%100!=0||year%400==0){
is=1;
}
//输入年的每个月份的天数
int[] e_month=new int[]{31,0,31,30,31,30,31,31,30,31,30,31};
if(is==1)
e_month[1]=29;//若为闰年二月29天,否则28天
else
e_month[1]=28;
/*计算所输年份距1900年1月1日(周一)的天数+所输月份距离所输
年份1月1日的天数,根据总天数得出所输月份第一天的星期*/
//所输年份距1900年1月1日(周一)的天数--使用for循环计算
int y_days=0;
for(int i=1900;i<year;i++){
if(i%4==0&&i%100!=0||i%400==0){
y_days+=366;
}else
y_days+=365;
}
//计算所输月份距离所输年份1月1日的天数
int m_days=0;
for(int i=1;i<month;i++){//month-1 表示假如输入5月份 要把前四个月天数相加
m_days+=e_month[i-1];
}
int week=(y_days+m_days)%7+1;//输入月第一天的星期
//输出该月的日历
System.out.println("星期日"+"\t"+"星期一"+"\t"+"星期二"+"\t"
+"星期三"+"\t"+"星期四"+"\t"+"星期五"+"\t"+"星期六"+"\t");
int n=0;//用来记录每7个格进行换行的标志
//输出该月开始的空白符
if(week!=7){//当第一天为周日时没有空白符
for(int i=0;i<week;i++)
System.out.print("\t");
n=week;
}
//输出日期
for(int i=1;i<=e_month[month-1];i++){
System.out.print(i+"\t");
n++;
if(n==7){
System.out.println();
n=0;
}
}
}
}
输入特定的年月 输出万年历
猜你喜欢
转载自blog.csdn.net/wjd_12345/article/details/80862176
今日推荐
周排行