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

发布于:2024-03-17 ⋅ 阅读:(66) ⋅ 点赞:(0)

通过两个方法来判断某一天是这一年的第几天(以2023,8,7为例)

方法一:

import java.time.LocalDate;
import java.util.Scanner;

/*
 * 输入某年某月某天,判断这一天是这一年的第几天?
 * 输入:2023,8,7
 * 输出:219
 */
public class demo1 {
	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);
		}
	}
	/**
	* @param datestr 日期字符串,格式为"2023,1,7"
	* @return
	*/
	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();

		return ret;
		
	}
}

 运行结果:

2023,8,7
219

 方法二:

import java.time.LocalDate;
import java.util.Scanner;

/*
 * 输入某年某月某天,判断这一天是这一年的第几天?
 * 输入:2023,8,7
 * 输出:219
 */
public class demo1 {
	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);
		}
	}
	/**
	* @param datestr 日期字符串,格式为"2023,1,7"
	* @return
	*/
	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();
		// 写法二
		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]++;   //闰年的2月有29天 
		}
		int ret = 0;
		for(int i = 0;i <= month -2;i++) {
			ret +=arr[i];
		}
		ret += days; 
		return ret;
		
	}
}

运行结果:

2023,8,7
219

本文含有隐藏内容,请 开通VIP 后查看

微信公众号

今日签到

点亮在社区的每一天
去签到