dateToNextBirthday method
Returns the period until the next year date at target
(or current time) for a date.
日付に対してのtarget
(もしくは現在時刻)における次の年の日付までの期間を返します。
final date = DateTime(1984, 8, 2).age(DateTime(2022, 10, 26)); // year: 38, month: 2, day: 24
Implementation
DateDuration dateToNextBirthday([DateTime? target]) {
final endDate = target ?? DateTime.now();
final tmpDate = DateTime(endDate.year, month, day);
final nextBirthdayDate = tmpDate.isBefore(endDate)
? tmpDate._addDate(const DateDuration(1, 0, 0))
: tmpDate;
return endDate._differenceDate(nextBirthdayDate);
}