博客
关于我
万年历(java)
阅读量:499 次
发布时间:2019-03-07

本文共 2994 字,大约阅读时间需要 9 分钟。

计算某一天是星期几

为了计算某一天是星期几,我们可以按照以下步骤编写代码:

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();        System.out.println("请输入天数");        int day = sc.nextInt();        int totalDay = 0;        // 计算从1900年1月1日到用户输入日期的总天数        for (int i = 1900; i < year; i++) {            totalDay += 365;        }        // 调整闰年所增加的天数        for (int i = 1900; i < year; i++) {            if (is闰年(i)) {                totalDay++;            }        }        // 计算当前年份的月份天数总和(不含当前月份的天数),然后加上当前日期        for (int month = 1; month <= inputMonth; month++) {            totalDay += daysInMonth(month);        }        totalDay += day - 1;        // 确定星期几的计算方式        int h = (int) (totalDay + 5) % 7;        if (h <= 0) h += 7;        int dayOfWeek = h;        // 输出结果        System.out.println("星期" + dayOfWeek);    }    private static boolean is闰年(int year) {        if (year % 4 != 0) return false;        if (year % 100 != 0) return true;        if (year % 400 == 0) return true;        return false;    }    private static int daysInMonth(int month) {        switch (month) {            case 1: case 3: case 5: case 7: case 8: case 10: case 12:                return 31;            case 4: case 6: case 9: case 11:                return 30;            default:                return 31;        }    }}

这个代码首先读取用户输入的年、月、日,然后计算从1900年1月1日到目标日期之间的总天数。接着根据闰年的判断来调整天数,最后确定目标日期是星期几。

打印月份

以下代码用于打印某一年的某一月份的日期分布:

import java.util.Scanner;public class Demo2 {    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();        // 确定当前年份的月份名称        System.out.println(monthName(month));        // 打印月份日期分布        System.out.println("日   月   星期日   星期一   星期二   星期三   星期四   星期五   星期六");        for (int day = 1; day <= daysInMonth(month); day++) {            System.out.printf("%2d", day);        }    }    private static String monthName(int month) {        switch (month) {            case 1: return "一月";            case 2: return "二月";            case 3: return "三月";            case 4: return "四月";            case 5: return "五月";            case 6: return "六月";            case 7: return "七月";            case 8: return "八月";            case 9: return "九月";            case 10: return "十月";            case 11: return "十一月";            case 12: return "十二月";            default: return "";        }    }    private static int daysInMonth(int month) {        switch (month) {            case 1: case 3: case 5: case 7: case 8: case 10: case 12:                return 31;            case 4: case 6: case 9: case 11:                return 30;            default:                return 0;        }    }}

这个代码读取年份和月份后,根据月份名称和日期分布来输出所需的内容。

转载地址:http://hlhcz.baihongyu.com/

你可能感兴趣的文章
Python FileDialog获取文件夹路径不是文件
查看>>
python filter过滤器的使用_python基础知识分享:zip()、filter函数和reduce如何使用?...
查看>>
python flask 请求code 400, message Bad request version
查看>>
Python UTC 日期时间对象的 ISO 格式不包括 Z(祖鲁语或零偏移)
查看>>
python valueerror object2_python遇到错误记录
查看>>
Python virtualenv
查看>>
python vue3实现大文件分段续传(断点续传)--带暂停和继续功能
查看>>
Python WebDriver如何打印整个页面源(html)
查看>>
python 使用execjs 报编码错误解决办法,UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xac in position 145: il
查看>>
python 复习计划
查看>>
Python 多处理 Numpy 随机
查看>>
Python 多处理:在第一个子错误时中止映射
查看>>
Python 多处理不断产生 pythonw.exe 进程而不做任何实际工作
查看>>
Python 多处理如何优雅地退出?
查看>>
Python 多处理模块的 .join() 方法到底在做什么?
查看>>
python 学习 面向对象编程
查看>>
Python基础(7)--函数
查看>>
Python基础部分-while循环,格式化输出
查看>>
Python基础语法与执行脚本的3种方式
查看>>
python基础篇(1):type()
查看>>