Prezentarea tipului de dată - 1

"Bună, Amigo. Vreau să vă spun despre un tip interesant numit Data. Acest tip stochează data și ora și poate măsura și intervale de timp."

— Sună interesant. Te rog, continuă.

„Fiecare obiect Date stochează un timp într-o formă destul de interesantă: numărul de milisecunde de la 1 ianuarie 1970, GMT”.

"Uau!"

"Da. Acest număr este atât de mare încât nu este suficient loc pentru el într-un int , așa că trebuie să fie stocat într-un lung . Dar este foarte util pentru a calcula diferența dintre oricare două date. Faceți doar scăderea pentru a găsi diferența cu precizie la milisecundă. De asemenea, rezolvă problema liniei de dată și a orei de vară."

„Cea mai interesantă parte este că fiecare obiect este inițializat cu ora curentă la crearea sa. Pentru a cunoaște ora curentă, trebuie doar să creați un obiect Date.”

"Cum lucrezi cu el?"

"Aici sunt cateva exemple:"

Obțineți data curentă:
public static void main(String[] args) throws Exception
{
     Date today = new Date();
     System.out.println("Current date: " + today);
}
Calculați diferența dintre cele două date
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");
}
Verificați dacă a trecut o anumită perioadă de timp:
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!");
    }
}
Determinați cât timp a trecut de la începutul zilei:
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);
}
Stabiliți câte zile au trecut de la începutul anului:
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()Metoda returnează numărul de milisecunde stocat într-un obiect Date.”

after()Metoda verifică dacă data la care am apelat metoda vine după data trecută metodei.”

getHours(), getMinutes(), getSeconds()Metodele returnează numărul de ore, minute și, respectiv, secunde pentru obiectul pe care au fost apelate.”

„Mai mult, în ultimul exemplu puteți vedea că puteți modifica data/ora stocată într-un obiect Date . Obținem ora și data curente și apoi resetam orele, minutele și secundele la 0. De asemenea, am setat ianuarie ca luna și 1 ca zi a lunii. Astfel, obiectul yearStartTimestochează data 1 ianuarie a anului curent și ora 00:00:00."

„După aceea, obținem din nou data curentă ( currentTime), calculăm diferența dintre cele două date în milisecunde și o stocăm în msTimeDifference”.

„Apoi împărțim msTimeDifferencela numărul de milisecunde în 24 de ore pentru a obține numărul de zile întregi de la începutul anului curent până astăzi”.

"Wow! E atât de tare!"