Memperkenalkan jenis Tarikh - 1

"Hai, Amigo. Saya ingin memberitahu anda tentang jenis menarik yang dipanggil Tarikh. Jenis ini menyimpan tarikh dan masa, dan juga boleh mengukur selang masa."

"Bunyinya menarik. Sila teruskan."

"Setiap objek Tarikh menyimpan masa dalam bentuk yang agak menarik: bilangan milisaat sejak 1 Januari 1970, GMT."

"Wah!"

"Ya. Nombor ini sangat besar sehingga tidak ada ruang yang cukup untuknya dalam int , jadi ia perlu disimpan dalam masa yang lama . Tetapi ia sangat berguna untuk mengira perbezaan antara mana-mana dua tarikh. Anda hanya melakukan penolakan untuk mencari perbezaan dengan ketepatan kepada milisaat. Ia juga menyelesaikan masalah garis tarikh dan masa penjimatan siang."

"Bahagian yang paling menarik ialah setiap objek dimulakan dengan masa semasa pada penciptaannya. Untuk mengetahui masa semasa, anda hanya perlu mencipta objek Tarikh."

"Bagaimana anda bekerja dengannya?"

"Berikut adalah beberapa contoh:"

Dapatkan tarikh semasa:
public static void main(String[] args) throws Exception
{
     Date today = new Date();
     System.out.println("Current date: " + today);
}
Kira perbezaan antara dua tarikh
public static void main(String[] args) throws Exception
{
    Date currentTime = new Date();           // Get the current date and time
    Thread.sleep(3000);                      // Wait 3 seconds (3000 milliseconds)
    Date newTime = new Date();               // Get the new current time

    long msDelay = newTime.getTime() - currentTime.getTime(); // Calculate the difference
    System.out.println("Time difference is: " + msDelay + " in ms");
}
Semak sama ada tempoh masa tertentu telah berlalu:
public static void main(String[] args) throws Exception
{
    Date startTime = new Date();

    long endTime = startTime.getTime() + 5000;  //    +5 seconds
    Date endDate = new Date(endTime);

    Thread.sleep(3000);              // Wait 3 seconds

    Date currentTime = new Date();
    if(currentTime.after(endDate))// Check whether currentTime is after endDate
    {
        System.out.println("End time!");
    }
}
Tentukan berapa banyak masa telah berlalu sejak permulaan hari:
public static void main(String[] args) throws Exception
{
    Date currentTime = new Date();
    int hours = currentTime.getHours();
    int mins = currentTime.getMinutes();
    int secs = currentTime.getSeconds();

    System.out.println("Time since midnight " + hours + ":" + mins + ":" + secs);
}
Tentukan berapa hari telah berlalu sejak awal tahun:
public static void main(String[] args) throws Exception
{
    Date yearStartTime = new Date();
    yearStartTime.setHours(0);
    yearStartTime.setMinutes(0);
    yearStartTime.setSeconds(0);

    yearStartTime.setDate(1);      // First day of the month
    yearStartTime.setMonth(0);     // January (the months are indexed from 0 to 11)

    Date currentTime = new Date();
    long msTimeDifference = currentTime.getTime() - yearStartTime.getTime();
    long msDay = 24 * 60 * 60 * 1000;  // The number of milliseconds in 24 hours

    int dayCount = (int) (msTimeDifference/msDay); // The number of full days
    System.out.println("Days since the start of the year: " + dayCount);
}

" getTime()Kaedah ini mengembalikan bilangan milisaat yang disimpan dalam objek Tarikh."

" after()Kaedah itu menyemak sama ada tarikh kami memanggil kaedah itu datang selepas tarikh berlalu kepada kaedah itu."

" getHours(), getMinutes(), getSeconds()Kaedah mengembalikan bilangan jam, minit dan saat, masing-masing, untuk objek yang dipanggil."

"Selain itu, dalam contoh terakhir anda dapat melihat bahawa anda boleh menukar tarikh/masa yang disimpan dalam objek Tarikh . Kami mendapat masa dan tarikh semasa dan kemudian menetapkan semula jam, minit dan saat kepada 0. Kami juga menetapkan Januari sebagai bulan dan 1 sebagai hari bulan. Oleh itu, yearStartTimeobjek menyimpan tarikh 1 Januari tahun semasa dan masa 00:00:00."

"Selepas itu, kami sekali lagi mendapat tarikh semasa ( currentTime), hitung perbezaan antara dua tarikh dalam milisaat dan simpan dalam msTimeDifference."

"Kemudian kami membahagikan msTimeDifferencedengan bilangan milisaat dalam 24 jam untuk mendapatkan bilangan hari penuh dari awal tahun semasa sehingga hari ini."

"Wah! Ini sangat keren!"