Haftanın Salı günü başlamasını istiyorum ve gün saat 05: 30'da başlamalıyım. Burada zamansal ayarlayıcıları kullanmak için cazipJava8 java.time: Haftanın gününü ve günün başlama saatini nasıl değiştirebilirim?
// LocalDateTimes created with the "standard" ISO time
LocalDateTime tuesday_4_30 = LocalDateTime.now()
.with(TemporalAdjusters.next(DayOfWeek.TUESDAY))
.withHour(4).withMinute(30);
LocalDateTime tuesday_6_30 = tuesday_4_30.withHour(6).withMinute(30);
LocalDateTime previous_monday = tuesday_4_30.minusDays(1);
// eventual adjustment using TemporalAdjusters here? like this?
// tuesday_4_30 = tuesday_4_30.with(new MyTemporalAdjuster(DayOfWeek.TUESDAY, 5, 30));
// <do the same for 6_30 and previous monday>
// or possibly change some global parameter like Chronology, Locale, or such..
Assert.assertEquals(tuesday_4_30.getDayOfWeek(), DayOfWeek.MONDAY);
Assert.assertEquals(tuesday_6_30.getDayOfWeek(), DayOfWeek.TUESDAY);
// there is 1 week between the previous monday and the next tuesday 6:30
Assert.assertEquals(ChronoUnit.WEEKS.between(previous_monday,tuesday_6_30), 1);
// there is 0 week between the previous monday and the next tuesday 4:30
Assert.assertEquals(ChronoUnit.WEEKS.between(previous_monday,tuesday_4_30), 0);
// 1 day between tuesday_4_30 and tuesday_6_30
Assert.assertEquals(ChronoUnit.DAYS.between(tuesday_4_30,tuesday_6_30), 1);
// 0 day between previous_monday and tuesday_4_30
Assert.assertEquals(ChronoUnit.DAYS.between(previous_monday,tuesday_4_30), 1);
ve ben gün 5 başlar böylece saat ve dakikayı biraz hafifletebilir eminim:
Bunun anlamıböyle kod çalışması gerekir: 30, ama haftanın başlangıcını nasıl değiştireceğimi anlayamıyorum.
WeekFields numaralı telefona baktığımı ancak ChronoUnit.XXX.between()
numaralı telefonu arayarak çalışamayacağımı unutmayın. Bu nedenle fazla ileri gitmedim. Görünüşe göre, çok fazla gerilmiş gibi görünen kendi Kronolojimi kodlamalıyım.
Yardımcı olabilir misiniz?
Peki günler arasında? Kodunuz çalışıyor çünkü benim durumum her ikisi için de geçerli. Ama sanırım "haftalar arası" ile aynı "günlerde" ara vermek zorundayım. – Gui13
Evet, tüm bu yöntemleri yeniden kullanmanız gerekir. Daha iyi bir yol olabilir. – assylias