首页 > 编程语言 >万年历 Java

万年历 Java

时间:2022-12-23 14:44:29浏览次数:48  
标签:Java 万年历 闰年 int System year println out

https://blog.csdn.net/qq_45871809/article/details/118299667

package sign_test;

import java.util.Scanner;

public class WanNianLi {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int year;// 定义年份
        int month;// 定义月份
        boolean isRunNian;// 判断是否为闰年
        int days = 0;// 月份的天数
        int totalDays = 0;// 从1900年到输入年份的总天数

        System.out.println("************************万年历************************");
        System.out.println("请输入年份:");
        year = input.nextInt();
        System.out.println("请输入月份:");
        month = input.nextInt();

        // 判断是否为闰年
        // 闰年:普通闰年(能被4整除,但不能被100整除)、世纪闰年(能被400整除)
        if (((year % 4 == 0 && year % 100 != 0)) || (year % 400 == 0)) {
            isRunNian = true;
            System.out.println(year + "年是闰年");
        } else {
            isRunNian = false;
            System.out.println(year + "年不是闰年");
        }

        // 遍历出从1900年到输入年份的总天数
        // 平年365天,闰年366天
        for (int i = 1900; i < year; i++) {
            // 判断年份i是否为闰年
            if (((i % 4 == 0 && i % 100 != 0)) || (i % 400 == 0)) {
                // 闰年366天
                totalDays += 366;
            } else {
                // 平年365天
                totalDays += 365;
            }
        }

        // 循环累计月份的天数
        // 遍历月份i的天数
        for (int i = 1; i <= month; i++) {
            // 判断月份i的天数
            switch (i) {
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                days = 31;
                break;
            case 2:
                // 二月分闰月和平月
                if (isRunNian) {
                    days = 29;
                } else {
                    days = 28;
                }
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                days = 30;
                break;
            default:
                System.out.println("输入信息有误!");
                ;
                break;
            }
            // 将switch判断出月份的天数加到总天数里
            if (i != month) {
                totalDays += days;
            }
        }

        System.out.println("日\t一\t二\t三\t四\t五\t六");
        // 将具体的时间遍历出来
        // 遍历之前先求出\t
        int beforeDays;// 日期前面的\t
        beforeDays = totalDays % 7 + 1;
        if (beforeDays == 7) {
            beforeDays = 0;// 前面无空格,即为星期天
        }

        // 遍历时间,先打印日期前面的\t
        for (int i = 0; i < beforeDays; i++) {
            System.out.print("\t");
        }
        // 打印日期
        for (int i = 1; i <= days; i++) {
            System.out.print(i + "\t");
            // 满七个换行
            // 日期前的\t+遍历到的日期=7,就换行
            if ((beforeDays + i) % 7 == 0) {
                System.out.println();
            }
        }
    }
}

 

标签:Java,万年历,闰年,int,System,year,println,out
From: https://www.cnblogs.com/linus-tan/p/17000640.html

相关文章

  • Docker+Jenkins+Gitee+Maven构建后台jar包后通过命令备份、替换、重启docker-compose
    场景docker-compose入门以及部署SpringBoot+Vue+Redis+Mysql(前后端分离项目)以若依前后端分离版为例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/12837......
  • 05_Java筑基之Java开发初体验
    05_Java筑基之Java开发初体验一.编写第一个HelloWorld程序1.Java开发步骤Java开发需要三个步骤:也就是会经历如下顺序:2.第一步:编写源程序......
  • 03_Java筑基之Java编程基础
    03_Java筑基之Java编程基础我们是学习软件开发的,必然离不开计算机,所以在进行学习之前,首先要了解一些必要的计算机基础知识.一.计算机基础1.......
  • java反射--PropertyDescriptor类:(属性描述器)、Introspector类
    博客后台-博客园(cnblogs.com)packagecom.peidasoft.instrospector;importjava.beans.BeanInfo;importjava.beans.Introspector;importjava.beans.Prop......
  • 教你用JavaScript实现随机点名器
    案例介绍欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript相关知识,做一个随机点名的案例。你可以通过点击开始按钮控制上方名字的闪动,点击停止按......
  • Java8 新特性之Instant 时间戳类
    一、Instant简介Instant类是Java8 中补充的一个 时间戳类,nstant 可以使用静态方法 now()或者of()方法来创建一个实例对象。Instant类 是Java8中补充的一个时间......
  • 教你用JavaScript实现背景图像滑动
    案例介绍欢迎来到我的小院,我是霍大侠,恭喜你今天又要进步一点点了!我们来用JavaScript编程实战案例,做一个背景图像滚动效果。滚动鼠标背景图像缩小,下方滑动出现文字。通......
  • Java 的垃圾回收机制的题目
    Java语言中垃圾回收的优点和原理,并考虑2种回收机制。  答案:Java语言中一个显著的特点就是引入了垃圾回收机制,使C++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序......
  • Java和vue开发的橱柜定制系统家具定制系统
    简介橱柜定制家具定制系统。用户查看家具样本,进行预约下单,后台人员根据用户的要求给出效果图和方案,以及报价,填写上门时间。管理员上门测量和用户确定好需求后上传协议,此时......
  • java和vue的学生健康管理系统疫情打卡系统
    需求:关注学生健康数据以及疫情打卡系统分两个角色:学生和管理员演示视频https://www.bilibili.com/video/BV1iD4y1h74F/?share_source=copy_web&vd_source=ed0f04fbb7131......