daysUntilEvent method

int daysUntilEvent()

حساب الأيام المتبقية للمناسبة

Implementation

int daysUntilEvent() {
  final now = DateTime.now();
  final currentHijri = HijriDate.fromDate(now);

  // البحث عن أقرب يوم للمناسبة
  int minDays = 999999;

  for (int day in days) {
    // جرب السنة الحالية
    DateTime eventDate = _calculateEventDate(currentHijri.hYear, month, day);
    int daysUntil = eventDate.difference(now).inDays;

    if (daysUntil >= 0 && daysUntil < minDays) {
      minDays = daysUntil;
    }

    // إذا لم نجد في السنة الحالية، جرب السنة القادمة
    if (daysUntil < 0) {
      eventDate = _calculateEventDate(currentHijri.hYear + 1, month, day);
      daysUntil = eventDate.difference(now).inDays;

      if (daysUntil < minDays) {
        minDays = daysUntil;
      }
    }
  }

  return minDays == 999999 ? 0 : minDays;
}