Java 入力の日付計算は年間通算日です:
アイデア
年を使用して、うるう年か通常の年かを区別します。年、平年では 2 月 28 日、閏年では 2 月は 29 日、
1、3、5、7、8、10、12 月は 31 日、その他の月は 30 日です。
次に、各月の日数を加算します。単純に合計します。12 月を入力すると、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 月に入力した日数から計算された固定日数
Java の詳細については、次の点に注意してくださいJava の基本チュートリアル。
以上がJavaで指定された日付の通算日を計算する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。