Java 입력 날짜 계산은 날짜를 기준으로 합니다.
아이디어
연도를 사용하여 윤년인지 평년인지 구분합니다. 평년은 2월 28일, 윤년은 2월 29일입니다.
1, 3, 5, 7, 8, 10, 12월은 31일이고 나머지 달은 30일입니다.
그런 다음 각 달의 일수를 추가하면 됩니다. 11월부터 1월까지 누적되며, 1월에 입력된 일수가 추가됩니다.
구현 코드:
import java.util.Scanner; /** * Created by xpf on 2018/6/22 :) * GitHub:xinpengfei520 * Function: */ public class CalculateUtils { /*平年二月28天*/ private static final int DAYS_28 = 28; /*闰年二月29天*/ private static final int DAYS_29 = 29; /*除了31天的月份其他均为30天*/ private static final int DAYS_30 = 30; /*1、3、5、7、8、10、12月份31天*/ private static final int DAYS_31 = 31; public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Please input year:"); int year = input.nextInt(); System.out.println("Please input month:"); int month = input.nextInt(); System.out.println("Please input day:"); int day = input.nextInt(); int daysInYear = getDaysInYear(year, month, day); System.out.println("daysInYear:" + daysInYear); } /** * get days in this year * * @param year * @param month * @param day * @return */ public static int getDaysInYear(int year, int month, int day) { int totalDays = 0; switch (month) { // 12 月份加的是11月份的天数,依次类推 case 12: totalDays += DAYS_30; case 11: totalDays += DAYS_31; case 10: totalDays += DAYS_30; case 9: totalDays += DAYS_31; case 8: totalDays += DAYS_31; case 7: totalDays += DAYS_30; case 6: totalDays += DAYS_31; case 5: totalDays += DAYS_30; case 4: totalDays += DAYS_31; case 3: // 判断是否是闰年 if (((year / 4 == 0) && (year / 100 != 0)) || (year / 400 == 0)) { totalDays += DAYS_29; } else { totalDays += DAYS_28; } case 2: totalDays += DAYS_31; case 1: // 如果是1月份就加上输入的天数 totalDays += day; } return totalDays; } }
2월의 일수와 입력된 일수만 고정되지 않으므로, 다른 달은 고정되어 있고 고정된 일수를 입력할 수 있습니다. 월을 계산하면 다음과 같이 계산할 수 있습니다.
2월의 일수 + 입력 일수 + 계산된 고정 일수
For 더 많은 Java 지식을 얻으려면 java 기본 튜토리얼에 주목하세요.
위 내용은 Java에서 특정 날짜의 일자를 계산하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!