HJ73 计算日期到天数转换
法一
具体做法:库函数
JAVA的Calendar类提供了日期的操作,可以直接用年月日信息设置当前日期,记得月份要减一,因为默认从0开始,然后用DAY_OF_YEAR直接获取该天在这一年中是第几天。
import java.util.Scanner;
import java.util.Calendar;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int y = in.nextInt();int m = in.nextInt();int d = in.nextInt();Calendar c1 = Calendar.getInstance();c1.set(y, m - 1, d);System.out.println(c1.get(Calendar.DAY_OF_YEAR));}}
法二
具体做法:计算法
可以用一个12大小的数组记录平年1到12月份,每个月的天数,然后根据输入的月份,累加该月前面的所有天数,再加上该月到现在为止的天数。
最后判断是否是闰年:
如果该年份整除4且不整除100,或者整除100就是闰年
对于闰年而言,上述累加和中大于2月份的要多加一天。2月因为用的就是day的天数,而不是月份的天数,因此不用管。
import java.util.Scanner;
import java.util.Calendar;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);int year = in.nextInt();int month = in.nextInt();int day = in.nextInt();int sumDay = 0;int[] month_day = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};for (int i = 0 ; i < month - 1 ; i++) {sumDay += month_day[i];}sumDay += day;if (month > 2 && is_leap(year)) {sumDay += 1;}System.out.println(sumDay);}public static boolean is_leap(int i) {if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0 ) {return true;} else {return false;}}}