Tarih tipine giriş - 1

"Merhaba Amigo. Size Date adında ilginç bir tipten bahsetmek istiyorum. Bu tip tarih ve saati saklar ve zaman aralıklarını da ölçebilir."

"Kulağa ilginç geliyor. Lütfen devam edin."

"Her Date nesnesi, bir zamanı oldukça ilginç bir biçimde depolar: 1 Ocak 1970'ten bu yana geçen milisaniye sayısı, GMT."

"Vay!"

"Evet. Bu sayı o kadar büyük ki bir int'de bunun için yeterli yer yok , bu yüzden uzun bir süre içinde saklanması gerekiyor . Ama herhangi iki tarih arasındaki farkı hesaplamak için gerçekten kullanışlı. Farkı bulmak için sadece çıkarma işlemi yapıyorsun. milisaniye hassasiyetinde. Ayrıca tarih satırı ve gün ışığından yararlanma saati sorununu da çözüyor."

"En ilginç yanı, her nesnenin, yaratıldığı sırada o anki saatle başlatılmasıdır. Şu anki saati bilmek için, sadece bir Date nesnesi oluşturmanız gerekir."

"Onunla nasıl çalışıyorsun?"

"İşte bazı örnekler:"

Geçerli tarihi alın:
public static void main(String[] args) throws Exception
{
     Date today = new Date();
     System.out.println("Current date: " + today);
}
İki tarih arasındaki farkı hesaplayın
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");
}
Belirli bir sürenin geçip geçmediğini kontrol edin:
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!");
    }
}
Günün başlangıcından bu yana ne kadar zaman geçtiğini belirleyin:
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);
}
Yılın başından bu yana kaç gün geçtiğini belirleyin:
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
Görev
Java Syntax,  seviyeders
Kilitli
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()Yöntem, bir Date nesnesinde depolanan milisaniye sayısını döndürür."

"Yöntem after(), yöntemi çağırdığımız tarihin, yönteme iletilen tarihten sonra gelip gelmediğini kontrol eder."

" getHours(), getMinutes(), getSeconds()Yöntemler, çağrıldıkları nesne için sırasıyla saat, dakika ve saniye sayısını döndürür."

"Ayrıca, son örnekte, bir Date nesnesinde saklanan tarih/saati değiştirebileceğinizi görebilirsiniz . Geçerli saat ve tarihi alıyoruz ve ardından saat, dakika ve saniyeleri 0'a sıfırlıyoruz. ay ve ayın günü olarak 1. Böylece nesne, yearStartTimegeçerli yılın 1 Ocak tarihini ve 00:00:00 saatini saklar."

"Bundan sonra tekrar güncel tarihi ( ) alırız currentTime, iki tarih arasındaki farkı milisaniye cinsinden hesaplar ve içinde saklarız msTimeDifference."

msTimeDifference"Sonra , içinde bulunduğumuz yılın başından bugüne kadar olan tam gün sayısını elde etmek için 24 saatteki milisaniye sayısına böleriz. "

"Vay canına! Bu çok havalı!"