Giriş
Period ve Duration Farkı
Period ise saati bilmediği için en küçük çözünürlüğü gün birimindendir. Açıklaması şöyle.
Şu satırı dahil ederiz
import java.time.Period;
Açıklaması şöyle
Quantity of time in terms of years, months, and days. Widely used get the difference between two particular dates or to modify a date.
Period sınıfı, Duration sınıfının aksine java.lang.Comparable arayüzünü gerçekleştirmez.
Period ve Duration Farkı
Period ise saati bilmediği için en küçük çözünürlüğü gün birimindendir. Açıklaması şöyle.
NOTE: java.time.Period only support year, month and day.Açıklaması şöyle.
NOTE: java.time.Duration support day and time (but not month and year)
A Period is made of a number of years, months and days.
Period ve Duration temel olarak Date Time API manipulation için kullanılır. Şeklen şöyle
Açıklaması şöyle. Yani Period sınıfı LocalDate veya LocalDateTime nesnelerini değiştirmek için kullanılır.Java came with a generic way to handle these date manipulations. It comes up with two objects1. Period and2. Duration.The thumb rule is the same, Period works with LocalDate and Duration will work with LocalTime.
Önce Months Alanına Değer Atanır
ÖrnekElimizde şöyle bir kod olsun. Burada aradaki süre 30 gün olduğu için months alanına 1 yazılır. days alanı ise 0 olur.
LocalDate a = LocalDate.of(1992, Month.APRIL, 1);
LocalDate b = LocalDate.of(1992, Month.MAY, 1);
// Calculate the period. It will return "One month"
Period period = Period.between(a, b);
// Add one month to b. It will return June 1, 1992
LocalDate c = b.plus(period);
System.out.println(ChronoUnit.DAYS.between(a, b)); // 30 days as April has 30 days
System.out.println(ChronoUnit.DAYS.between(b, c)); // 31 days as May has 31 days
KullanımofX() metodu ile yaratılan period nesnesine plus() çağrısı ile diğer süreler eklenir. Şöyle yaparız.
Period.ofYears(1).plus(Period.ofWeeks(1));
of metodları sürekli yeni nesne ürettiği için 1 yıl 1 hafta yaratmak için şu kod yanlış. Elimize sadece 1 hafta geçer.Period wrong = Period.ofYears(1).ofWeeks(1);
between metoduAçıklaması şöyle. Bitiş günü hesaplamaya dahil edilmez.
ÖrnekThe start date is included, but the end date is not.
Şöyle yaparız. Çıktı olarak 30 gün alırız.
Period difference = Period.between(01.01.2018,31.01.2018)
of metodu
Şöyle yaparız
Period.of(1, 1, 1);Period.ofDays(1);Period.ofYears(1);Period.ofMonths(2);Period.ofWeeks(2);
İki LocalData arasında kaç gün olduğunu bulmak için şöyle yaparız.
public static Period getPeriodInDaysBetween(LocalDate from, LocalDate to) {
int days = (int) from.until(to, ChronoUnit.DAYS);
return Period.ofDays(days);
}
ofWeeks metoduAçıklaması şöyle. Yani days alanına değer ataması yapar.
ÖrnekThe resulting period will be day-based, with the amount of days equal to the number of weeks multiplied by 7. The years and months units will be zero.
Şöyle yaparız.
Period p = Period.ofWeeks(3);
ÖrnekofWeeks ile yazıla days alanına tekrar değer atandığı için şu kullanım yanlış.
Period p = Period.ofWeeks(3);
p = p.withDays(2);
ofYears metoduŞöyle yaparız.
Period p = Period.ofYears(1);
withDays metoduŞöyle yaparız. 3 ay 2 gün elde ederiz.
Period p = Period.ofMonths(3);
p = p.withDays(2);
Hiç yorum yok:
Yorum Gönder