通过两个方法来判断某一天是这一年的第几天(以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