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);
}
2
Feladat
Java Syntax,  szintlecke
Zárt
Code entry
Your attention, please! Now recruiting code entry personnel for CodeGym. So turn up your focus, let your fingers relax, read the code, and then... type it into the appropriate box. Code entry is far from a useless exercise, though it might seem so at first glance: it allows a beginner to get used to and remember syntax (modern IDEs seldom make this possible).

"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!"