A dátum típus bemutatása - 1

"Szia Amigo. Szeretnék mesélni egy érdekes típusról, a dátumról. Ez a típus tárolja a dátumot és az időt, és időintervallumokat is tud mérni."

– Érdekesen hangzik. Kérem, folytassa.

"Minden dátum objektum egy időt egy meglehetősen érdekes formában tárol: ez az ezredmásodpercek száma 1970. január 1-je óta, GMT."

– Hűha!

"Igen. Ez a szám olyan nagy, hogy nincs elég hely neki az int- ben, ezért hosszú ideig kell tárolni . De nagyon praktikus bármely két dátum közötti különbség kiszámításához. Csak ki kell vonni, hogy megtalálja a különbséget ezredmásodperc pontossággal. Megoldja a dátumvonal és a nyári időszámítás problémáját is."

"A legérdekesebb az, hogy minden objektumot a létrehozáskor az aktuális idővel inicializálnak. Az aktuális idő megismeréséhez csak létre kell hoznia egy dátum objektumot."

– Hogyan dolgozol vele?

"Íme néhány példa:"

Az aktuális dátum lekérése:
public static void main(String[] args) throws Exception
{
     Date today = new Date();
     System.out.println("Current date: " + today);
}
Számítsa ki a két dátum közötti különbséget!
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");
}
Ellenőrizze, hogy eltelt-e bizonyos idő:
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!");
    }
}
Határozza meg, mennyi idő telt el a nap kezdete óta:
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);
}
Határozza meg, hány nap telt el az év eleje óta:
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);
}

"A getTime()metódus a Date objektumban tárolt ezredmásodpercek számát adja vissza."

"A after()metódus ellenőrzi, hogy a metódus meghívásának dátuma a metódusnak átadott dátum után van-e."

"A getHours(), getMinutes(), getSeconds()metódusok az órák, percek és másodpercek számát adják vissza ahhoz az objektumhoz, amelyen meghívták őket."

"Sőt, az utolsó példában láthatja, hogy módosíthatja a dátum objektumban tárolt dátumot/időt. Megkapjuk az aktuális időt és dátumot, majd visszaállítjuk az órákat, perceket és másodperceket 0-ra. A januárt is beállítottuk hónap és 1 a hónap napja. Így az yearStartTimeobjektum az aktuális év január 1-jei dátumot és a 00:00:00 időpontot tárolja."

"Ezt követően ismét megkapjuk az aktuális dátumot ( currentTime), kiszámítjuk a két dátum közötti különbséget ezredmásodpercben, és eltároljuk a -ban msTimeDifference."

"Ezután elosztjuk msTimeDifferencea 24 óra ezredmásodperceinek számát, hogy megkapjuk a teljes napok számát az aktuális év elejétől a mai napig."

"Hűha! Ez nagyon klassz!"