博客
关于我
万年历(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/

你可能感兴趣的文章
Nginx配置ssl实现https
查看>>
Nginx配置TCP代理指南
查看>>
Nginx配置——不记录指定文件类型日志
查看>>
Nginx配置代理解决本地html进行ajax请求接口跨域问题
查看>>
Nginx配置参数中文说明
查看>>
Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
查看>>
Nginx配置实例-负载均衡实例:平均访问多台服务器
查看>>
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NIO基于UDP协议的网络编程
查看>>
NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
查看>>
Nitrux 3.8 发布!性能全面提升,带来非凡体验
查看>>
NI笔试——大数加法
查看>>
NLog 自定义字段 写入 oracle
查看>>
NLP 基于kashgari和BERT实现中文命名实体识别(NER)
查看>>
NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
查看>>
NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
查看>>