java题目计算日期到天数转换
描述
根据输入的日期,计算是这一年的第几天。
保证年份为4位数且日期合法。
进阶:时间复杂度:O(n)\O(n) ,空间复杂度:O(1)\O(1)
输入描述:
输入一行,每行空格分割,分别是年,月,日
输出描述:
输出是这一年的第几天
示例1
输入:
2012 12 31
输出:
366
示例2
输入:
1982 3 4
输出:
63
1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStreamReader; 4 import java.util.HashMap; 5 6 /** 7 * 描述 8 * 根据输入的日期,计算是这一年的第几天。 9 * 保证年份为4位数且日期合法。 10 * 进阶:时间复杂度:O(n)\O(n) ,空间复杂度:O(1)\O(1) 11 * 输入描述: 12 * 输入一行,每行空格分割,分别是年,月,日 13 * 14 * 输出描述: 15 * 输出是这一年的第几天 16 */ 17 public class Main { 18 static HashMap<Integer, Integer> map = new HashMap<>(); 19 static { 20 map.put(1, 31); 21 map.put(3, 31); 22 map.put(4, 30); 23 map.put(5, 31); 24 map.put(6, 30); 25 map.put(7, 31); 26 map.put(8, 31); 27 map.put(9, 30); 28 map.put(10, 31); 29 map.put(11, 30); 30 map.put(12, 31); 31 } 32 public static void main(String[] args) throws IOException { 33 final BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 34 String in; 35 while ((in = br.readLine()) != null) { 36 int sum = 0; 37 final String[] strArr = in.split(" "); 38 // 判断是不是闰年 39 if (checkYear(Integer.parseInt(strArr[0]))) { 40 map.put(2, 29); 41 } else { 42 map.put(2, 28); 43 } 44 // 累计月份前的天数 45 int month = Integer.parseInt(strArr[1]); 46 for (int i = 1; i < month; i++) { 47 sum = sum + map.get(i); 48 } 49 int day = Integer.parseInt(strArr[2]); 50 sum = sum + day; 51 System.out.println(sum); 52 } 53 } 54 55 /** 56 * 判断是不是闰年 57 * 闰年: 58 * (1)十年一闰百年不闰:即如果year能够被4整除,但是不能被100整除,则year是闰年。 59 * (2)每四百年再一闰:如果year能够被400整除,则year是闰年。 60 * @param year 61 * @return 62 */ 63 private static boolean checkYear(int year) { 64 if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) { 65 return true; 66 } 67 return false; 68 } 69 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix