美文网首页
万年历(实现从键盘输入1900年之后的任意的某年、某月,输出该月

万年历(实现从键盘输入1900年之后的任意的某年、某月,输出该月

作者: 优秀产品研习社 | 来源:发表于2018-09-14 17:48 被阅读0次

//25. 万年历(实现从键盘输入1900年之后的任意的某年、某月,输出该月的日历)

import java.util.Scanner;

public class Calendar{

public static void main(String[] args){

//显示日历

// 1、对应月份的天数

// ① 1、3、5、7、8、10、12月份  31天

// ② 4、6、9、11   30天

// ③ 2   28天或29天(待定)

// 2、对应月份1号 是星期几

// ① 1900年 1月 1日 星期1 

// ② 指定日期的星期  与1900年1月1日相差的天数%7+1 (1~7的范围)

// ③ 相差天数=1900年与年份之间相差的天数 + 年份到指定月份1号之前相差的天数

// 3、指定年份是平年还是闰年(确定二月 的天数)

// ① 确定指定年份的2月有多少天

//接收用户从控制台输入的数据

Scanner sc = new  Scanner(System.in);

System.out.println("请输入年份(>=1900):");

int year = sc.nextInt();//获取年份

System.out.println("请输入月份[1-12]:");

int month = sc.nextInt();//获取月份

//1、对应月份的天数

int days = 28;

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){

days = 31;

}else if(month==4||month==6||month==9||month==11){

days = 30;

}else{

if(year%400==0||(year%4==0&&year%100!=0)){//判断闰年的情况

days = 29;

}

}

//2、相差天数

int yDays = 0;//统计两个年份之间相差的天数

for(int y = 1900;y<year;y++){

if(year%400==0||(year%4==0&&year%100!=0)){//判断闰年的情况

yDays += 366;

}else{

yDays += 365;

}

}

int mDays = 0;//指定年份1月1日,到指定月份1日相差的天数

for(int m = 1;m<month;m++){

if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){

mDays += 31;

}else if(m==4||m==6||m==9||m==11){

mDays += 30;

}else{

if(year%400==0||(year%4==0&&year%100!=0)){//判断闰年的情况

mDays += 29;

}else{

mDays += 28;

}

}

}

int totalDays = yDays + mDays+1;//相差总天数

int week = totalDays%7+1;//指定月份1号 的星期

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

//先根据星期 确定需要打印空位的 情况(week)

for(int i = 1;i<=week;i++){

if(i%7==0){

System.out.println(" \t");

}else{

System.out.print(" \t");

}

}

//可以打印对应月份的天数(days)

for(int j = 1;j<=days;j++){

if((j+week)%7==0){

System.out.println(j+"\t");

}else{

System.out.print(j+"\t");

}

}

}

}

相关文章

  • 万年历(实现从键盘输入1900年之后的任意的某年、某月,输出该月

    //25. 万年历(实现从键盘输入1900年之后的任意的某年、某月,输出该月的日历) import java.ut...

  • 2018-05-24

    一、万年历 它的功能是:用户输入某年、某月、某日,程序输出这一天是星期几;用户输入某年、某月,程序输出该年该月的每...

  • shell脚本的万年历实现

    ./project2.sh 然后输入年和月,查询某年某月的万年历./project2.sh -y 然后输入年和月,...

  • 已知某年月,获得该月的周数及每周的始末时间

    最近阿Q在项目开发中遇到一个小问题: 后台统计:已知某年和某月,计算该月每周的销量。 这就要求我们要获取特定年月的...

  • 某年某月某天

    某年某月某天 我忘记了你 某年某月某天 我想起了你 某年某月某天 你想起了我 某年某月某天 你忘记了我 但并不表示...

  • 某年某月的昨天

    某年某月的昨天 2015.9.17晚 某年...

  • 输入年月输出天数

    题目输入某某年,某某月,输出本月有多少天(包含是否有闰年) 结果输出 3.代码package cn.nokia.m...

  • 情感物语四百九十六

    初识于某年某月某天的冬季,再识于某年某月某天的初夏的黄昏,结束于某年某月某天的午后暮秋的潇潇雨中。 初识只是偶然,...

  • 某年某月

    秋天不瞑目 春天不生长 你,欠我一个冬天 【清樾 诗歌截句】

  • 某年  某月  某日

    某年 某月 某天 “这天什么情况啊,天气预报不是说是暖冬吗?怎么还是寒气逼人啊”说着紧紧的拉紧了胸前敞开的拉链。 ...

网友评论

      本文标题:万年历(实现从键盘输入1900年之后的任意的某年、某月,输出该月

      本文链接:https://www.haomeiwen.com/subject/qpxagftx.html