输入某年某月某天,判断这一天是这一年的第几天?

问题描述:输入某年某月某天,判断这一天是这一年的第几天?

输入:2023,8,7

输出:219

实现思路:

1.使用Scanner类从控制台读取一行输入,该输入应为"年,月,日"格式的字符串。
2.使用split方法按逗号分割字符串,得到一个字符串数组。然后将这个数组中的每个元素转换为整数,分别代表年、月和日。
3.计算天数:有两种计算方式。
写法1(未使用):使用Java 8中引入的LocalDate类。通过LocalDate.of(year, month, days)创建一个LocalDate对象,然后调用getDayOfYear()方法直接获取该日期是这一年的第几天。这种方法利用了Java的日期时间API,简化了计算过程。
写法2(已使用):定义了一个包含每月天数的数组arr,然后遍历这个数组,累加前几个月的天数,再加上输入日期的日数,得到结果。在累加前,首先判断是否为闰年,如果是闰年,则二月天数加1。

代码实现:

java 复制代码
package com.ztt.exercise.Demo04;

import java.time.LocalDate;
import java.util.Scanner;
/*
 * 输入某年某月某天,判断这一天是这一年的第几天?
 * 输入:2023,8,7
 * 输出:219

 */

public class Demo03 {
	public static void main(String[] args) {
		try(Scanner input=new Scanner(System.in)){
			String line=input.nextLine();
			
			int result=getDayOfYear(line);
			System.out.println(result);
		}
		
	}
	
	public static int getDayOfYear(String dateStr) {
		//切割字符串
		String[] array=dateStr.split(",");
		
		//提取出"年月日"
		int year=Integer.parseInt(array[0]);
		int month=Integer.parseInt(array[1]);
		int days=Integer.parseInt(array[2]);
		
		//写法1
//		LocalDate date=LocalDate.of(year, month, days);
//		int ret=date.getDayOfYear();
		
		//写法2
		int[] arr= {31,28,31,30,31,30,31,31,30,31,30,31};
		
		//判断闰年
		if(year%4==0&&year%100!=0||year%400==0) {
			arr[1]++;//闰年二月有29天
		}
		int ret=0;
		for(int i=0;i<=month-2;i++) {
			ret+=arr[i];
		}
		ret+=days;
		
		return ret;
		
		
	}

}

输出结果:

java 复制代码
2023,8,7
219
相关推荐
数据皮皮侠AI13 分钟前
上市公司数字供应链金融指数(2010-2024)
大数据·人工智能·算法
山峰哥22 分钟前
数据库工程与SQL调优:从慢查询到秒级响应的实战之路
java·开发语言·数据库·sql·深度优先·启发式算法
乐观的Terry24 分钟前
11、发布系统-用户认证与权限体系
java·spring boot·spring·spring cloud·mybatis
前端开发张小七24 分钟前
Java 学习笔记 · 第二课:面向对象核心(封装、继承、多态)及接口与异常
java·后端·程序员
wangjialelele31 分钟前
Selenium4 + Java Web自动化测试入门指南:从环境搭建到常用操作详解
java·开发语言·前端·测试工具·自动化
Awna41 分钟前
Golang 大小写可见性规范
开发语言·后端·golang
孙启超1 小时前
【AI应用开发】LangChain 中 Chain 和 Agent 核心区别?
java·人工智能·langchain·llm·rag·ai应用开发·agent loop
leoZ2311 小时前
实战复盘:用 Claude Code 从零搭一个 GitHub PR 统计工具
java·人工智能·python·深度学习·自然语言处理·github·llama
William Dawson1 小时前
【踩坑实录|Hive1\.2\.1数据服务接口5大疑难问题调试与全方位优化方案】
java·hive·spring boot
Hi李耶1 小时前
【LeetCode】541.反转字符串 II
算法·leetcode·职场和发展