思路: 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);
}
}