Period ve Duration
Coddy'nin Java Journey'sinin Mantık & Akış bölümünün bir parçası — ders 57 / 59.
Period, tarih tabanlı bir zaman miktarını (yıllar, aylar, günler) temsil ederken, Duration zaman tabanlı bir miktarı (saatler, dakikalar, saniyeler) temsil eder.
Bir Dönem Oluşturun:
Period period = Period.of(1, 2, 15);
// 1 year, 2 months, 15 daysBir Süre Oluştur:
Duration duration = Duration.ofHours(2);
// 2 hours
Duration minutes = Duration.ofMinutes(90);
// 90 minutesYukarıdaki kodu çalıştırdıktan sonra, period şu değeri içerir:
P1Y2M15D // ISO-8601 formatGörev
KolaycalculateDifference adında dört argüman alan bir metot oluşturun:
- "yyyy-MM-dd HH:mm" formatında bir String (
start) - "yyyy-MM-dd HH:mm" formatında bir String (
end) - "period" veya "duration" olan bir String (
unit) - "full" veya "simple" olan bir String (
format)
Metot şunları yapmalıdır:
- başlangıç ve bitiş tarihleri arasındaki farkı hesaplayın
- belirtilen formatta farkı döndürün
Döndürülecek mesajlar şunlar olmalıdır:
- Geçersiz tarihse: "Invalid date format" döndürün
- Geçersiz birimse: "Invalid unit" döndürün
- Geçersiz format ise: "Invalid format" döndürün
- "full" formatlı period için: "Years: X, Months: Y, Days: Z"
- "simple" formatlı period için: "XyYmZd"
- "full" formatlı duration için: "Hours: X, Minutes: Y"
- "simple" formatlı duration için: "XhYm"
Kopya kağıdı
Period, tarih tabanlı miktarları (yıllar, aylar, günler) temsil ederken, Duration zaman tabanlı miktarları (saatler, dakikalar, saniyeler) temsil eder.
Bir Period oluşturun:
Period period = Period.of(1, 2, 15);
// 1 yıl, 2 ay, 15 günBir Duration oluşturun:
Duration duration = Duration.ofHours(2);
// 2 saat
Duration minutes = Duration.ofMinutes(90);
// 90 dakikaPeriod ISO-8601 formatını kullanır:
P1Y2M15D // 1 yıl, 2 ay, 15 günKendin dene
import java.util.Scanner;
import java.time.*;
import java.time.format.*;
public class Main {
public static String calculateDifference(String start, String end, String unit, String format) {
// Kodunuzu buraya yazın
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String start = scanner.nextLine();
String end = scanner.nextLine();
String unit = scanner.nextLine();
String format = scanner.nextLine();
System.out.println(calculateDifference(start, end, unit, format));
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1Çok Boyutlu Diziler
2D Diziler Temelleri2D Dizi Elemanlarına Erişim2D Dizilerle İç İçe DöngülerÖzet - 2D DizilerMatris Toplama ve ÇıkarmaJagged Diziler3D Diziler ve ÖtesiYaygın 2D Dizi DesenleriÖzet - Diziler Hakkında Her Şey4HashSet 1. Kısım
HashSet Nedir?Eleman EklemeEleman KaldırmaElemanın Varlığını Kontrol EtmeBoş mu ve BoyutTemizle ve KlonlaÖzet - HashSet10Tarih ve Saat
LocalDate TemelleriLocalTime İşlemleriLocalDateTime KullanımıPeriod ve DurationTarih BiçimlendirmeZaman Dilimi Yönetimi2HashMap Bölüm 1
HashMap Nedir?HashMap TanımlamaDeğerlere ErişimAnahtarın Varlığını Kontrol EtmeSözlükleri DeğiştirmeÖzet - HashMap3HashMap Bölüm 2
HashMap YöntemlerikeySet() ile YinelemeentrySet() ile Yinelemeİç İçe HashMapÖzet - Depo YönetimiÖzet - HashMap İşlemleri6İleri Akış Kontrolü
Etiketli İfadelerSwitch İfadesiDesen EşleştirmeKoruyucu Yan CümlelerÖzet - Akış Kontrolü9Proje - Benzersiz Kelime Sayacı
Metin Girişi ve DepolamaKelime İşleme