Представяме ви тип Дата - 1

"Здравей, Амиго. Искам да ти разкажа за един интересен тип, наречен Date. Този тип съхранява датата и часа и може също да измерва времеви интервали."

„Звучи интересно. Моля, продължете.“

„Всеки обект Date съхранява време в доста интересна форма: броят мorсекунди от 1 януари 1970 г., GMT.“

"Уау!"

„Да. Това число е толкова голямо, че няма достатъчно място за него в int , така че трябва да се съхранява в long . Но е наистина удобно за изчисляване на разликата между две дати. Просто правите изваждане, за да намерите разликата с точност до мorсекунда. Освен това решава проблема с линията за дата и лятното часово време."

"Най-интересната част е, че всеки обект се инициализира с текущия час при създаването си. За да знаете текущия час, просто трябва да създадете обект Date."

"Как работите с него?"

"Ето няколко примера:"

Вземете текущата дата:
public static void main(String[] args) throws Exception
{
     Date today = new Date();
     System.out.println("Current date: " + today);
}
Изчислете разликата между двете дати
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");
}
Проверете дали е минало определено време:
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!");
    }
}
Определете колко време е минало от началото на деня:
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);
}
Определете колко дни са изминали от началото на годината:
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
Задача
Java Syntax,  нивоурок
Заключено
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()Методът връща броя мorсекунди, съхранени в обект Date.“

after()Методът проверява дали датата, на която сме извикали метода, идва след датата, предадена на метода.“

getHours(), getMinutes(), getSeconds()Методите връщат съответно броя часове, minutesи и секунди за обекта, на който са бor извикани.“

„Освен това, в последния пример можете да видите, че можете да промените датата/часа, съхранени в обект Date . Получаваме текущия час и дата и след това нулираме часовете, minutesите и секундите на 0. Също така задаваме януари като месец и 1 като ден от месеца. Така обектът yearStartTimeсъхранява датата 1 януари на текущата година и часа 00:00:00."

„След това отново получаваме текущата дата ( currentTime), изчисляваме разликата между двете дати в мorсекунди и я съхраняваме в msTimeDifference.“

„След това разделяме msTimeDifferenceна броя мorсекунди за 24 часа, за да получим броя на пълните дни от началото на текущата година до днес.“

„Уау! Това е толкова готино!“