IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java(输出万年历) -> 正文阅读

[Java知识库]Java(输出万年历)

import java.util.Scanner;
public class PerpetualCalendar {
    /**
     知识点:方法版万年历
     */
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入年:"); //2021
        int year = scan.nextInt();
        System.out.println("请输入月:"); //7
        int month = scan.nextInt();

        //1.计算1900~输入年的总天数
        int allDayOfYear = getAllDayOfYear(1900,year);

        //2.计算1~输入月的总天数
        int allDayOfMonth = getAllDayOfMonth(year,1,month);

        //3.年的总天数 + 月的总天数
        int allDay = allDayOfYear + allDayOfMonth + 1;

        //4.获取星期
        int week = getWeek(allDay);

        //5.获取当月天数
        int day = getDay(year,month);

        //5.打印日期
        printCalendar(year,month,day,week);
    }

    //打印日期
    public static void printCalendar(int year,int month,int day,int week){
        System.out.println(" --- " + year + "年 - " + month + "月 ---");
        System.out.println("周一\t周二\t周三\t周四\t周五\t周六\t周日");

        int num = 0;
        for(int i = 1;i<week;i++){
            System.out.print("\t");
            num++;
        }

        for(int i = 1;i<=day;i++){
            System.out.print(i + "\t");
            num++;
            if(num%7==0){
                System.out.println();
            }
        }
    }

    //获取星期
    public static int getWeek(int allDay){
        if(allDay%7 == 0){
            return 7;
        }
        return allDay%7;
    }

    //获取开始月到结束月的天数
    public static int getAllDayOfMonth(int year,int startMonth,int endMonth){
        int allDayOfMonth = 0;
        for(int i = startMonth;i<endMonth;i++){
            allDayOfMonth += getDay(year,i);
        }
        return allDayOfMonth;
    }

    //获取当月天数
    public static int getDay(int year,int month){
        int day = 0;
        switch(month){
            case 1:case 3:case 5:case 7:case 8:case 10:case 12:
                day=31;
                break;
            case 4:case 6:case 9:case 11:
                day=30;
                break;
            case 2:
                if(isLeapYear(year)){
                    day=29;
                }else{
                    day=28;
                }
                break;
        }
        return day;
    }

    //获取开始年到结束年的天数
    public static int getAllDayOfYear(int startYear,int endYear){
        int allDayOfYear = 0;
        for(int i = startYear;i<endYear;i++){
            if(isLeapYear(i)){
                allDayOfYear+=366;
            }else{
                allDayOfYear+=365;
            }
        }
        return allDayOfYear;
    }

    //判断是否是闰年
    public static boolean isLeapYear(int year){
        if(year%4==0&&year%100!=0 || year%400== 0){
            return true;
        }
        return false;
    }


}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:04:44  更:2021-07-27 16:06:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/1 21:04:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码