思路: 1,分别定义三个变量来接收 年 月 日 2,累加已经过完的月份的天数 + 日期 3,二月份的天数要根据是否是闰年,随之改变 1 3 5 7 8 10 12 ---> 31天 4 6 9 11 ---> 30天 2 ---> 闰年:29 平年:28
代码:
public class YearMonthDay {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入年份:");int year = sc.nextInt();System.out.println("请输入月份:");int month = sc.nextInt();System.out.println("请输入几日:");int day = sc.nextInt();int sum =0;for (int i=1;i<month;i++){ //i是已经过完的月份if (i==1 || i==3 || i==5|| i==7||i==8||i==10||i==12){sum+=31;} else if (i==2) {if((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)){sum+=29;}else {sum+=28;}}else {sum+=30;}}sum+=day;System.out.println(year+"-"+month+"-"+day+"是当前年的第"+sum+"天");}
}
效果图:
这是初级阶段的求法,学过 LocalDate的可以直接用 LocalDate求一年中的第几天
public class Main {
public static void main(String[] args) {
// 创建一个 LocalDate 对象,表示特定的日期
LocalDate date = LocalDate.of(2024, 1, 23);
// 获取一年中的第几天
int dayOfYear = date.getDayOfYear(); System.out.println("Day of year: " + dayOfYear);
}
}