1. 问题描述:从控制台输入一个4位数字的年份,输入月份,号数那么判断是一年中的第几天

因为年份涉及到是闰年还是平年的问题,那么我们一开始的时候需要判断输入的年份是平年还是闰年然后才可以对特殊的2月份进行处理一下,使用一个额外的数组来存储一年中每个月的天数,方便我们在for循环中进行操作,我们可以在for循环中对月份的天数进行累加,直到月份达到输入月份的上一个月份即可,然后再循环之外加上输入的号数那么就可以知道是一年中的第几天了

判断平年还是闰年,可以从百度百科中查询到闰年的判定为:

普通年:能被4整除但不能被100整除的年份为普通闰年。(如2004年就是闰年,1999年不是闰年)
世纪年:能被400整除的为世纪闰年(如2000年是闰年,1900年不是闰年)

所以一般的思路可以这样写:

if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
 }

判断是闰年之后那么我们可以对数组中2月份天数设置为29天就可以了

import java.util.Scanner;
public class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);int year = sc.nextInt();int month = sc.nextInt();int day = sc.nextInt();int days = 0;int monthDays[] = {31,28,31,30,31,30,31,31,30,31,30,31};if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){//判断是闰年那么应该将数组中第二个元素的值设置为29天monthDays[1] = 29;}//注意应该是i < month - 1不是小于monthfor(int i = 0; i < month - 1; i++){days +=  monthDays[i];}days += day;System.out.println(year + "年的" + month + "月" + day + "日是一年中的第" + days + "天");sc.close();}
}

测试输入:

2018 11 11

那么应该输出的是315天

2. 除了上面的问题,我们还可以想到输入年份,一年中的第几天那么判断是几月几日这个问题

首先向之前一样输入月份都是需要判断当前的年份是否为闰年,然后使用一个数组将每个月的天数存储起来,在for循环中进行当前月份天数的递减,并且使用一个计数变量来计算当前循环到第几个月了,for循环的循环条件为天数减去当前月份的天数应该大于零,那么循环结束剩下的天数就是当前月份的几号了

具体的代码如下:

import java.util.Scanner;
public class Main{public static void main(String[] args){Scanner sc = new Scanner(System.in);int year = sc.nextInt();int day = sc.nextInt();int n = day;int monthDays[] = {31,28,31,30,31,30,31,31,30,31,30,31};if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){//判断是闰年那么应该将数组中第二个元素的值设置为29天monthDays[1] = 29;}//初始化月份int index = 1;//注意判断应该是大于零而不是等于零for(int i = 0; i < monthDays.length && day - monthDays[i] > 0; i++){day -=  monthDays[i];index++;}System.out.println(year + "年的第" + n + "天是" + index + "月" + day + "号");sc.close();}
}

测试数据比如:

2018 315

那么输出应该是11月11日

还可以输入其他的数据进行测试

生活中的年月日相关问题相关推荐

  1. 日常生活中,人们需要对某些常见图形和几何体做计算面积,体积,周长等相关计算。设计一个形状计算器,完成此功能。通过对菜单的选择,可以对不同的形状进行计算。

    日常生活中,人们需要对某些常见图形和几何体做计算面积,体积,周长等相关计算.设计一个形状计算器,完成此功能.通过对菜单的选择,可以对不同的形状进行计算. 1 作业中的接口与类 2 抽象类用于所有空间实 ...

  2. 谈谈生活中那些与学习相关的事儿

    文章目录 谈谈高效率 全身心投入是高效率的开始 人脑规律是高效率的进阶 手脚并用是高效率的高阶 谈谈学习方法 十步学习法 第一步:了解全局 第二步:确定范围 第三步:定义目标 第四步:寻找资源 第五步 ...

  3. 失败在大学生活中的三种功能

    --在2021级本科生开学典礼上的发言 清华大学写作与沟通教学中心主任公管学院长聘副教授:梅赐琪   尊敬的各位领导,各位同事,亲爱的2021级新生以及各位家长: §01 前言   首先请允许我代表我 ...

  4. c语言程序解决生活中的问题作文,生活中烦恼的事五年级满分作文

    在我们人生的道路上,总会遇到这样那样的烦恼,困难与挫折,但在那时候,我们更不能惊慌,要静下心来沉住气,认真的去想解决的方法.勇敢地去面对,这是人生的一道坎儿.下面是小编为大家整理的关于生活中烦恼的事五 ...

  5. python能在生活中做什么-Python能在生活中做什么

    很多人学习Python就是为了在人工智能.大数据等领域谋求一份高薪工作,Python其实很接地气,我们如果学习了Python而不把它作为一种谋生手段也可以在生活中解决很多问题,那么Python能在生活 ...

  6. Java中Date各种相关用法

    Java中Date各种相关用法 本文主要介绍Java中Date各种相关用法. AD:   Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=C ...

  7. 计算机组装与维修说课稿,大班《生活中的数字》说课稿

    大班<生活中的数字>说课稿 一.说教材 我说课的内容选自大班数学领域<生活中的数字>."数"来源于生活,运用于生活.寻找生活中的数字这一活动内容灵活丰富,根 ...

  8. 《解释的工具:生活中的经济学原理》读书笔记7(完)

    上一篇的篇名叫"当法学遇上经济学",说的是利用经济学的基本思维和基本理论去解释法学日常所处理的基本问题,去解决法学在特殊条件下所难以处理的疑难杂症.作者从公平正义这个话题开始切入, ...

  9. 【转】第00课导读:生活中的设计模式——启程之前,请不要错过我

    为什么叫设计模式 什么是设计模式 设计模式与生活有什么联系 为什么要学设计模式 如何进行学习 为什么选择 Python 弥补市场空缺 大势所趋,Python 已然成风 简单的 Python 基础 Py ...

最新文章

  1. [置顶]       设计模式之创建类模式——原型模式
  2. Java基础:请求重定向与请求转发的比较
  3. 查看sql_一键查看Oracle数据库当前SQL_WORKAREA_ACTIVE的相关操作
  4. 如何对MacBook上坏掉的USB-C接口进行故障排除?
  5. 阅兵奇葩服装:美军顶鸡毛掸子 伊军扮鬼妖
  6. 屏蔽群晖系统升级并去除群晖桌面小红点
  7. html菜单栏向左展开与收起,网页左侧固定菜单栏的展开与收起
  8. Java内存分配及值、引用的传递
  9. 一部手机必须能用 7 年?苹果、三星、Google:三年支持差不多!
  10. c语言去尾法和进一法的例子,用“进一法”和“去尾法”解决问题教学案例
  11. jstl和el表达式
  12. HTML, CSS学习笔记(完整版)
  13. flac转mp3的方法
  14. OSI七层模型基础知识及各层常见应用
  15. 调研:“淘宝村”、“网店村”是如何发家的?
  16. docker swam 集群实现负载均衡
  17. 20款 密码破解工具
  18. 局域网语音对讲系统_高速公路隧道电话广播一体调度系统解决方案
  19. Windows中FTP搭建
  20. 一级计算机考试电子邮件发送模拟题目,9月计算机一级MSOffice考前模拟试题及答案...

热门文章

  1. 搭建Keepalived+Nginx高可用负载均衡服务器
  2. 618数码产品推荐,最值得入手的几款数码产品
  3. 解读微博2019年Q3财报:进入5亿时代,微博正走向纵向发展
  4. 什么是广播域?可用什么方法隔离广播域?
  5. 获取染色体长度(bp)
  6. 制作表格排名动态变化图(GDP,人口等)
  7. 阿里云服务器一年价格是多少?阿里云服务器一般多少钱一年?
  8. ArcGIS教程:半变异函数建模
  9. python怎么打印列表长度_打印知道长度和宽度的钻石(Python)
  10. 大AI巧用「砌砖」方法:LLM可通过将任务「外包」给专业领域的AI模型来提高其性能...