Maison >Java >JavaBase >Comment calculer le jour de l'année pour une date spécifiée en Java

Comment calculer le jour de l'année pour une date spécifiée en Java

尚
original
2019-11-23 11:30:104048parcourir

Comment calculer le jour de l'année pour une date spécifiée en Java

Le calcul de la date d'entrée Java est le jour de l'année :

Idée

Utilisez l'année pour distinguer s'il s'agit d'une année bissextile ou ordinaire année, le 28 février dans une année ordinaire, février a 29 jours dans les années bissextiles

1, 3, 5, 7, 8, 10, et décembre a 31 jours et les autres mois ont 30 jours ; 🎜>

Ajoutez ensuite le nombre de jours dans chaque mois. Additionnez-les simplement. Notez que si vous saisissez décembre, il sera accumulé de novembre à janvier, et le nombre de jours saisis en janvier sera ajouté

.

Code d'implémentation :

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;
    }
}

Parce que seuls le nombre de jours en février et le numéro de jour saisi ne sont pas fixes, le nombre de jours dans les autres mois est fixe et le nombre fixe de jours peut être calculé à partir de le mois saisi, nous pouvons donc le calculer comme ceci :

Le nombre de jours en février + le nombre de jours saisi + le nombre fixe de jours calculé

Pour plus de connaissances Java, veuillez payer attention au

tutoriel de base Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn