Introduserer datotypen - 1

"Hei, Amigo. Jeg vil fortelle deg om en interessant type kalt Date. Denne typen lagrer dato og klokkeslett, og kan også måle tidsintervaller."

"Høres interessant ut. Vennligst fortsett."

"Hvert Date-objekt lagrer en tid i en ganske interessant form: antall millisekunder siden 1. januar 1970, GMT."

"Wow!"

"Ja. Dette tallet er så stort at det ikke er nok plass til det i en int , så det må lagres i en lang . Men det er veldig nyttig for å beregne forskjellen mellom to datoer. Du bare subtraksjoner for å finne forskjellen med nøyaktighet til millisekund. Det løser også problemet med datolinjen og sommertid."

"Den mest interessante delen er at hvert objekt initialiseres med gjeldende klokkeslett ved opprettelsen. For å vite gjeldende klokkeslett trenger du bare å lage et Dato-objekt."

"Hvordan jobber du med det?"

"Her er noen eksempler:"

Få gjeldende dato:
public static void main(String[] args) throws Exception
{
     Date today = new Date();
     System.out.println("Current date: " + today);
}
Regn ut forskjellen mellom de to datoene
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");
}
Sjekk om det har gått en viss tid:
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!");
    }
}
Bestem hvor mye tid som har gått siden begynnelsen av dagen:
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);
}
Bestem hvor mange dager som har gått siden begynnelsen 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
Oppgave
Java Syntax,  nivålekse
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 returnerer antall millisekunder som er lagret i et Date-objekt."

" after()Metoden sjekker om datoen vi kalte metoden på kommer etter datoen som ble sendt til metoden."

" getHours(), getMinutes(), getSeconds()Metodene returnerer henholdsvis antall timer, minutter og sekunder for objektet de ble kalt på."

"I tillegg kan du i det siste eksemplet se at du kan endre dato/klokkeslett som er lagret i et Date- objekt. Vi får gjeldende klokkeslett og dato og tilbakestiller deretter timene, minuttene og sekunder til 0. Vi setter også januar som måned og 1 som dag i måneden. Dermed yearStartTimelagrer objektet datoen 1. januar i inneværende år og klokkeslettet 00:00:00."

"Etter det får vi igjen gjeldende dato ( currentTime), regner ut forskjellen mellom de to datoene i millisekunder og lagrer den i msTimeDifference."

"Deretter deler vi msTimeDifferencepå antall millisekunder i løpet av 24 timer for å få antall hele dager fra begynnelsen av inneværende år til i dag."

"Wow! Dette er så kult!"