dateToNextBirthday method

DateDuration dateToNextBirthday([
  1. DateTime? target
])

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);
}