getUpcomingEvents static method
الحصول على المناسبات المقبلة في الأشهر القادمة
Implementation
static List<IslamicEvent> getUpcomingEvents({int monthsAhead = 3}) {
final now = DateTime.now();
final currentHijri = HijriDate.fromDate(now);
final List<IslamicEvent> upcomingEvents = [];
for (int i = 0; i <= monthsAhead; i++) {
int targetMonth = ((currentHijri.hMonth - 1 + i) % 12) + 1;
final monthEvents = getEventsInMonth(targetMonth);
for (var event in monthEvents) {
if (event.daysUntilEvent() > 0) {
upcomingEvents.add(event);
}
}
}
// ترتيب حسب الأيام المتبقية
upcomingEvents
.sort((a, b) => a.daysUntilEvent().compareTo(b.daysUntilEvent()));
return upcomingEvents;
}