Introduktion av datumtypen - 1

"Hej Amigo. Jag vill berätta om en intressant typ som heter Date. Den här typen lagrar datum och tid och kan även mäta tidsintervall."

"Låter intressant. Snälla fortsätt."

"Varje Date-objekt lagrar en tid i en ganska intressant form: antalet millisekunder sedan 1 januari 1970, GMT."

"Oj!"

"Ja. Det här talet är så stort att det inte finns tillräckligt med utrymme för det i en int , så det måste lagras i en lång . Men det är väldigt praktiskt för att beräkna skillnaden mellan två datum. Du subtrakterar bara för att hitta skillnaden med noggrannhet till millisekund. Det löser också problemet med datumlinjen och sommartid."

"Den mest intressanta delen är att varje objekt initialiseras med den aktuella tiden vid skapandet. För att veta den aktuella tiden behöver du bara skapa ett Date-objekt."

"Hur jobbar du med det?"

"Här är några exempel:"

Få aktuellt datum:
public static void main(String[] args) throws Exception
{
     Date today = new Date();
     System.out.println("Current date: " + today);
}
Beräkna skillnaden mellan de två datumen
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");
}
Kontrollera om en viss tid har gått:
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!");
    }
}
Bestäm hur lång tid som har gått sedan dagens början:
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);
}
Bestäm hur många dagar som har gått sedan början av året:
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
Uppgift
Java Syntax,  nivålektion
Låst
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).

" getTime()Metoden returnerar antalet millisekunder lagrade i ett Date-objekt."

"Metoden after()kontrollerar om datumet vi anropade metoden på kommer efter det datum som skickats till metoden."

"Metoderna getHours(), getMinutes(), getSeconds()returnerar antalet timmar, minuter respektive sekunder för objektet som de anropades på."

"Dessutom, i det sista exemplet kan du se att du kan ändra datum/tid lagrad i ett Date- objekt. Vi får aktuell tid och datum och återställer sedan timmarna, minuterna och sekunderna till 0. Vi ställer också in januari som månad och 1 som dag i månaden. Objektet yearStartTimelagrar alltså datumet 1 januari innevarande år och tiden 00:00:00."

"Efter det får vi återigen det aktuella datumet ( currentTime), beräkna skillnaden mellan de två datumen i millisekunder och lagra det i . msTimeDifference"

"Då dividerar vi msTimeDifferencemed antalet millisekunder på 24 timmar för att få antalet hela dagar från början av innevarande år fram till idag."

"Wow! Det här är så coolt!"