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

你可能感兴趣的文章
Oracle监听配置、数据库实例配置等
查看>>
Oracle系列:安装Oracle RAC数据库(二)
查看>>
oracle系统 介绍,ORACLE数据库管理系统介绍
查看>>
oracle获取数据库表、字段、注释、约束等
查看>>
oracle表空间查询维护命令大全之三(暂时表空间)史上最全
查看>>
oracle表访问方式
查看>>
Oracle触发器
查看>>
Oracle计划将ZGC项目提交给OpenJDK
查看>>
oracle账号共享
查看>>
Oracle闪回技术(Flashback)
查看>>
oracle零碎要点---ip地址问题,服务问题,系统默认密码问题
查看>>
oracle零碎要点---oracle em的web访问地址忘了
查看>>
Oracle零碎要点---多表联合查询,收集数据库基本资料
查看>>
Oracle静默安装
查看>>
Oracle面试题:Oracle中truncate和delete的区别
查看>>
ThreadLocal线程内部存储类
查看>>
thinkphp 常用SQL执行语句总结
查看>>
Oracle:ORA-00911: 无效字符
查看>>
Text-to-Image with Diffusion models的巅峰之作:深入解读 DALL·E 2
查看>>
TCP基本入门-简单认识一下什么是TCP
查看>>