Rumah >Java >javaTutorial >Bagaimana Mengira Dengan Tepat Bilangan Hari Antara Dua Tarikh di Jawa?

Bagaimana Mengira Dengan Tepat Bilangan Hari Antara Dua Tarikh di Jawa?

Linda Hamilton
Linda Hamiltonasal
2024-12-17 16:01:10841semak imbas

How to Accurately Calculate the Number of Days Between Two Dates in Java?

Mengira Hari antara Dua Tarikh dengan Java

Memandangkan masalah mengira hari antara dua tarikh, adalah penting untuk mempertimbangkan kerumitan yang terlibat dalam mengendalikan tahun lompat dan musim panas. Artikel ini menunjukkan cara melaksanakan tugas ini dengan berkesan dalam Java, memastikan ketepatan dan menampung nuansa ini.

Kod Java yang disediakan mengikut pendekatan mudah untuk mengira hari antara dua tarikh:

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class DateDifferenceCalculator {

    public static void main(String[] args) {

        // Obtain the first date in German notation (dd mm yyyy)
        Scanner s = new Scanner(System.in);
        System.out.print("Insert first date (dd mm yyyy): ");
        String inputDate1 = s.nextLine();

        // Parse the first date into a Date object
        SimpleDateFormat myFormat = new SimpleDateFormat("dd MM yyyy");
        Date date1 = null;
        try {
            date1 = myFormat.parse(inputDate1);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        // Obtain the second date in German notation (dd mm yyyy)
        System.out.print("Insert second date (dd mm yyyy): ");
        String inputDate2 = s.nextLine();

        // Parse the second date into a Date object
        Date date2 = null;
        try {
            date2 = myFormat.parse(inputDate2);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        // Calculate the time difference in milliseconds
        long diff = date2.getTime() - date1.getTime();

        // Convert the time difference to days
        float days = (diff / (1000*60*60*24));

        // Print the number of days between the two dates
        System.out.println("Days: " + days);

        s.close();
    }
}

Mengendalikan Tahun Lompat dan Musim Panas:

Kod ini menjaga dengan betul tahun lompat dengan menggunakan kaedah getTime() objek Date, yang menangkap bilangan milisaat sejak 1 Januari 1970, dengan mengambil kira hari interkalari tahun lompat. Walau bagaimanapun, ia tidak mengambil kira musim panas, di mana masa penjimatan siang boleh menjejaskan pengiraan perbezaan masa. Untuk mengendalikan musim panas, logik tambahan perlu digabungkan, seperti menentukan zon waktu yang sesuai untuk tarikh yang diberikan dan melaraskan perbezaan masa dengan sewajarnya.

Pertimbangan Ketepatan:

Adalah penting untuk ambil perhatian bahawa TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS) kehilangan ketepatan, kerana ia menukar milisaat kepada hari. Sebagai alternatif, pengiraan yang lebih tepat boleh dicapai dengan membahagikan perbezaan dengan (10006060*24), menghasilkan nilai apungan yang mewakili hari antara dua tarikh dengan lebih ketepatan.

Atas ialah kandungan terperinci Bagaimana Mengira Dengan Tepat Bilangan Hari Antara Dua Tarikh di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn