Introduktion af datotypen - 1

"Hej, Amigo. Jeg vil gerne fortælle dig om en interessant type kaldet Date. Denne type gemmer dato og klokkeslæt og kan også måle tidsintervaller."

"Lyder interessant. Fortsæt venligst."

"Hver Dato-objekt gemmer en tid i en ret interessant form: antallet af millisekunder siden 1. januar 1970, GMT."

"Hov!"

"Ja. Dette tal er så stort, at der ikke er plads nok til det i en int , så det skal gemmes i en lang . Men det er virkelig praktisk til at beregne forskellen mellem to datoer. Du skal bare trække fra for at finde forskellen med nøjagtighed til millisekund. Det løser også problemet med datolinjen og sommertid."

"Den mest interessante del er, at hvert objekt initialiseres med det aktuelle klokkeslæt ved dets oprettelse. For at kende det aktuelle klokkeslæt skal du blot oprette et Dato-objekt."

"Hvordan arbejder du med det?"

"Her er nogle eksempler:"

Få den aktuelle dato:
public static void main(String[] args) throws Exception
{
     Date today = new Date();
     System.out.println("Current date: " + today);
}
Beregn forskellen mellem de to datoer
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");
}
Tjek, om der er gået en vis 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 lang tid der er gået siden begyndelsen af ​​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 dage der er gået siden begyndelsen af ​​å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
Opgave
Java Syntax,  niveaulektie
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 antallet af millisekunder gemt i et Dato-objekt."

" after()Metoden tjekker, om den dato, vi kaldte metoden på, kommer efter den dato, der er overført til metoden."

" getHours(), getMinutes(), getSeconds()Metoderne returnerer henholdsvis antallet af timer, minutter og sekunder for det objekt, som de blev kaldt på."

"Desuden kan du i det sidste eksempel se, at du kan ændre dato/klokkeslæt gemt i et Dato- objekt. Vi får det aktuelle klokkeslæt og dato og nulstiller derefter timer, minutter og sekunder til 0. Vi indstiller også januar som måned og 1 som dag i måneden. Objektet yearStartTimegemmer således datoen 1. januar i det aktuelle år og klokkeslættet 00:00:00."

"Derefter får vi igen den aktuelle dato ( currentTime), beregner forskellen mellem de to datoer i millisekunder og gemmer den i msTimeDifference."

"Så dividerer vi msTimeDifferencemed antallet af millisekunder på 24 timer for at få antallet af hele dage fra begyndelsen af ​​indeværende år og frem til i dag."

"Wow! Det er så fedt!"