给出年、月、日,计算该日期是该年的第n天。

来源:百度知道 编辑:UC知道 时间:2024/05/26 23:39:13
给出年、月、日,计算该日期是该年的第n天。 录入的日期格式为:yyyy-mm-dd。例如(2009-01-11),用带参数的方法实现。

public class Test {
public static void main(String[] args) {
System.out.println(dayOfYear("2009-01-11"));
}

static int dayOfYear(String date) {
String[] params = date.split("-");
int year = Integer.parseInt(params[0]);
int month = Integer.parseInt(params[1]);
int day = Integer.parseInt(params[2]);
return dayOfYear(year, month, day);
}

static int dayOfYear(int year, int month, int day) {
daysOfMonth[2] = isLeapYear(year) ? 29 : 28;
int sum = 0;
for (int i = 1; i < month; ++i) {
sum += daysOfMonth[i];
}
return sum + day;
}

static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}

final static int[] daysOfMonth =
{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
}