Java基础入门day09

day09

万年历综合案例

说明:1900年的1月1日是礼拜一,所有后面的任何一天到底是礼拜几,一定是一个固定值

所有的日历都会从1900年1月1日是礼拜一开始算起

整体思路:

我们可以计算用户输入年份和月份距离1900年1月1日总共有多少天,这一部分可以分为两部分

totalYear和totalMonth,最终将两个值加起来得到totalDay

而使用totalDay与7进行取余的运算得到firstDay,可以得出该月份的1号之前总共有多少空位

空位打印完成后,可以打印真正的日期。

真正日期面临每遇到周日换行,所以根据fristDay与具体日期数值进行取余运算,余数为零则换行

1900年 1月1日的详细日历如下:

1234567
891011121314
15161718192021
22232425262728
293031

则1900年的2月1日详细日历如下:

1234
567891011

因为1900年1月最后一天31是周三,所有1900年2月1日必须是周四,所以需要进行对七进行取余运算得到前面的空格数

代码实现:

package com.saas;
​
import java.util.Scanner;
​
/** 时间:2024-03-07* 描述:打印日历*/
public class PrintCalendar {
​public static void main(String[] args) {
​// 创建键盘输入对象Scanner scan = new Scanner(System.in);
​System.out.print("请输入年份: ");int year = scan.nextInt();
​/** 判断年份是否合法* 1900-2500*/if(year < 1900 || year > 2500){System.out.println("请输入合法的年份(1900-2500)");return;}
​System.out.print("请输入月份: ");int month = scan.nextInt();
​/** 判断月份是否合法* 1-12*/if(month < 1 || month > 12){System.out.println("请输入合法的月份(1-12)");return;}
​int totalYear = 0, totalMonth = 0, totalDay = 0;
​/** 计算用户输入的年份距离1900之间的天数* 1900-2024*/for(int i = 1900; i < year; i++){if(i % 4 == 0 && i % 100 != 0 || i % 400 == 0){totalYear += 366;       // 闰年总天数加366}else{totalYear += 365;       // 平年总天数加365}}
​int days = 0;
​/** 计算用户输入的月份距离用户输入年份的1月1日之间的天数* 20240101-20240301*/for(int i = 1; i <= month; i++){switch (i){case 1:case 3:case 5:case 7:case 8:case 10:case 12:days = 31;      // 大月份总共有31天break;case 4:case 6:case 9:case 11:days = 30;      //  小月份总共有30天break;case 2:if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){days = 29;  //  用户输入年份是闰年,则二月份总共有29天}else{days = 28;  // 用户输入年份是平年,则二月份总共有28天}}
​//  用户输入的月份不需要累加到totalMonth中,只需要计算1月份到输入月份之前的总天数即可if(i < month)totalMonth += days;}
​totalDay = totalYear + totalMonth;
​/** 打印日历头部信息*/System.out.println("一\t二\t三\t四\t五\t六\t日");
​/** 计算用户所输入具体日历之后的1号之前应该有多少个空位* 1900-2024*/int firstDay = (totalDay % 7);
​//  在1号之前打印多少个空位for(int i = 0; i < firstDay; i++){System.out.print("\t");};
​//  开始真正月份的打印for(int i = 1;i <= days; i++){
​System.out.print(i + "\t");
​//  每遇到周日之后要换行if((firstDay + i) % 7 == 0){System.out.println();}}}
}

作业

模拟一个银行ATM自助银行服务:

  1. 开户1

  2. 存款2

  3. 取款3

  4. 转账4

  5. 查询余额5

  6. 修改密码6

  7. 退出0

首先可以进入银行自助服务页面,将以上功能展示出来

接下来让用户选择,以上对应各自的编号,注意退出是0号,执行对应的打印功能

如果用户输入的编号有误(不是0-6),则让用户重新输入,执行操作

需要用到的知识点是循环和switch,实现以上功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2868557.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

旅游管理系统 |基于springboot框架+ Mysql+Java+Tomcat的旅游管理系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参考 摘要 研究…

Docker使用(二)Docker安装和常见典型操作

Docker使用(二)Docker安装和常见典型操作 二、软件安装 1、Docker安装 &#xff08;1&#xff09;环境准备 [rootlocalhost ~]# uname -r 3.10.0-327.el7.x86_64 # cat /etc/os-release &#xff08;2&#xff09;卸载旧版本 $ sudo yum remove docker \ ​ docker-cli…

Java中如何解决if-else(策略+枚举)

最近接到了一个新需求&#xff0c;按照不同的编码去执行不同的逻辑&#xff0c;但最后返回的数据类型是一致的&#xff0c;都是相同对象的List集合。 完成这个需求的话可以使用if-else来执行不同的方法&#xff0c;虽然if-else可以实现&#xff0c;但if-else是一种面向过程的实…

Docker 中 MySQL 的部署与管理

目录 一、Docker 中部署 MySQL1.1 部署 MySQL1.2 进入容器并创建数据库1.3 Navicat 可视化工具连接 二、可能存在的问题2.1 1130 - Host ‘172.17.0.1‘ is not allowed to connect to this MySQL server 参考资料 一、Docker 中部署 MySQL 1.1 部署 MySQL 首先&#xff0c;从…

因时夹爪urdf文件改写为xacro并搭配aubo_i5机械臂

因时夹爪urdf文件改写为xacro并搭配aubo_i5机械臂 一、因时夹爪内容二、改写为xacro模式三、aubo i5搭配因时夹爪 一、因时夹爪内容 因时夹爪型号&#xff1a;EG2-4C 夹爪的urdf文件内容&#xff1a; <robotname"jawasm1"><linkname"base_link"…

计算机网络 |内网穿透

其实内网穿透&#xff0c;也挺好玩的&#xff0c;如果在大学的时候&#xff0c;那个时候讲计算机网络的老师能横向延展&#xff0c;估计课也会更有趣不少&#xff0c;本来计算机网络这门课就是计算机课程中可玩性最搞的。 只能说&#xff0c;怪可惜的 回到正题&#xff0c;内网…

三菱FX5U可编程控制器应用指令精讲

三菱FX5U可编程控制器是三菱公司力推的中小型控制器&#xff0c;是目前力推的iQ-F系列的明星产品。从编程的角度&#xff0c;它使用三菱GX-Works3软件&#xff0c;真正在写电气自动化程序的时候&#xff0c;有大量的指令需要我们去研究作用和用法&#xff0c;然后做试验写程序&…

【嵌入式实践】【芝麻】【硬件篇-4】从0到1给电动车添加指纹锁:IO电路简单介绍

0. 前言 该项目是基于stm32F103和指纹模块做了一个通过指纹锁控制电动车的小工具。支持添加指纹、删除指纹&#xff0c;电动车进入P档等待时计时&#xff0c;计时超过5min则自动锁车&#xff0c;计时过程中按刹车可中断P档状态&#xff0c;同时中断锁车计时。改项目我称之为“芝…

【MySQL】5. 数据类型

数据类型 1. 数据类型分类 2. 数值类型 2.1 tinyint类型 数值越界测试&#xff1a; mysql> use tt; Database changed mysql> create table t1(-> num tinyint-> ); Query OK, 0 rows affected (0.01 sec)mysql> insert into t1 values(-128); Query OK, 1 r…

2024年【P气瓶充装】模拟考试及P气瓶充装证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 P气瓶充装模拟考试是安全生产模拟考试一点通生成的&#xff0c;P气瓶充装证模拟考试题库是根据P气瓶充装最新版教材汇编出P气瓶充装仿真模拟考试。2024年【P气瓶充装】模拟考试及P气瓶充装证考试 1、【多选题】《中华…

c语言按位与,按位或,按位异或,按位取反

1、按位与& 按位与的实现逻辑是相同为1&#xff0c;相异为0&#xff1b; 2、按位或 | 按位或的实现逻辑是有1为1&#xff0c;无一为0&#xff1b; 3、按位异或 ^ 按位或的实现逻辑是相同为0&#xff0c;相异为1&#xff1b; 4、按位取反 ~ 按位取反的实现逻辑是0改1&am…

想进阿里?先搞懂Spring Bean作用域!

大家好,我是小米!今天我来和大家分享一下 Java 开发中一项非常重要的技术——参数校验。参数校验在我们的代码中起着至关重要的作用,它能够确保我们的应用程序接收到正确的数据,并且保证了系统的安全性和稳定性。在过去,我们可能会通过繁琐的 if-else 来进行参数校验,但是…

Arduino IDE配置ESP8266开发环境

一、配置步骤 在Arduino IDE中配置ESP8266开发环境的详细步骤如下&#xff1a; 1.打开Arduino IDE&#xff0c;依次点击“文件”->“首选项”&#xff0c;在“附加开发板管理器网址”一栏添加ESP8266开发板的网址。常用的网址是&#xff1a; http://arduino.esp8266.com/s…

c语言:操作符详解(上)

目录 一、操作符的分类二、二进制和进制转换1.2进制转10进制2.10进制转2进制3.2进制转8进制4.2进制转16进制 三、原码、反码、补码四、算术操作符、-、*、/、%1.**和-**2.*3./4.% 五、移位操作符1.左移操作符2.右移操作符 六、位操作符&#xff1a;&、|、^、~七、赋值操作符…

软件测试工程师简历要怎么写,才能让HR看到

作为软件测试的从业者&#xff0c;面试或者被面试都是常有的事。 可是不管怎样&#xff0c;和简历有着理不清的关系&#xff0c;面试官要通过简历了解面试者的基本信息、过往经历等。 面试者希望通过简历把自己最好的一面体现给面试官&#xff0c;所以在这场博弈中&#xff0…

蓝桥杯练习系统(算法训练)ALGO-971 比较

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 给出一个n长的数列&#xff0c;再进行m次询问&#xff0c;每次询问询问两个区间[L1,R1]&#xff0c;[L2,R2]&#xff0c;  …

一款博客网站源码

一款博客网站源码 源码软件库 为大家内置了主题 清爽又强大真正的永久可用的一条源码&#xff0c;该版本为整合版本&#xff0c;内置了Joe主题&#xff0c;搭建后直接启用即可~ 安装环境要求&#xff1a; PHP 7.2 以上 MySQL, PostgreSQL, SQLite 任意一种数据库支持&#xff…

多种智能搜索算法可视化还原 3D 魔方

一、写在前面 许久没有写图形化界面的程序了&#xff0c;最近学习了一些经典的盲目搜索算法与智能搜索算法&#xff0c;正好拿来还原三阶魔方&#xff01;试试手&#xff01; 提前声明 我不是专业搞人工智能的&#xff0c;理论或者实现过程有些许错误也很正常&#xff0c;评论…

python的小技巧一

文章目录 python的小技巧系列1、变量相关变量交换三元运算符一个数值的范围比较有的场景下使用 try...exception 代替if...else 2、字符串相关格式化连接字符串的分割字符串的连接 3、生成器4、列表相关取最后一个元素判断列表是否为空列表合并去除列表中的重复值判断某个值是包…

HJXH-E1/U静态信号继电器 面板安装 辅助电源220VDC 启动电压220VDC JOSEF约瑟

HJXH系列静态信号继电器 HJXH-61/U静态信号继电器&#xff1b; HJXH-61/I静态信号继电器&#xff1b; HJXH-62/U静态信号继电器&#xff1b; HJXH-62/I静态信号继电器&#xff1b; HJXH-E1/U静态信号继电器&#xff1b; HJXH-E1/I静态信号继电器&#xff1b; HJXH-E2/U静态信号…