116 lines
3.1 KiB
Dart
116 lines
3.1 KiB
Dart
import 'package:em2rp/models/event_model.dart';
|
|
|
|
class CalendarUtils {
|
|
static String getDayName(int weekday) {
|
|
switch (weekday) {
|
|
case DateTime.monday:
|
|
return 'Lundi';
|
|
case DateTime.tuesday:
|
|
return 'Mardi';
|
|
case DateTime.wednesday:
|
|
return 'Mercredi';
|
|
case DateTime.thursday:
|
|
return 'Jeudi';
|
|
case DateTime.friday:
|
|
return 'Vendredi';
|
|
case DateTime.saturday:
|
|
return 'Samedi';
|
|
case DateTime.sunday:
|
|
return 'Dimanche';
|
|
default:
|
|
return '';
|
|
}
|
|
}
|
|
|
|
static String getShortDayName(int weekday) {
|
|
switch (weekday) {
|
|
case DateTime.monday:
|
|
return 'Lun';
|
|
case DateTime.tuesday:
|
|
return 'Mar';
|
|
case DateTime.wednesday:
|
|
return 'Mer';
|
|
case DateTime.thursday:
|
|
return 'Jeu';
|
|
case DateTime.friday:
|
|
return 'Ven';
|
|
case DateTime.saturday:
|
|
return 'Sam';
|
|
case DateTime.sunday:
|
|
return 'Dim';
|
|
default:
|
|
return '';
|
|
}
|
|
}
|
|
|
|
static String getMonthName(int month) {
|
|
switch (month) {
|
|
case 1:
|
|
return 'Janvier';
|
|
case 2:
|
|
return 'Février';
|
|
case 3:
|
|
return 'Mars';
|
|
case 4:
|
|
return 'Avril';
|
|
case 5:
|
|
return 'Mai';
|
|
case 6:
|
|
return 'Juin';
|
|
case 7:
|
|
return 'Juillet';
|
|
case 8:
|
|
return 'Août';
|
|
case 9:
|
|
return 'Septembre';
|
|
case 10:
|
|
return 'Octobre';
|
|
case 11:
|
|
return 'Novembre';
|
|
case 12:
|
|
return 'Décembre';
|
|
default:
|
|
return '';
|
|
}
|
|
}
|
|
|
|
static String getMonthYearString(DateTime weekStart, DateTime weekEnd) {
|
|
if (weekStart.month == weekEnd.month) {
|
|
return '${getMonthName(weekStart.month)} ${weekStart.year}';
|
|
} else {
|
|
return '${getMonthName(weekStart.month)} - ${getMonthName(weekEnd.month)} ${weekEnd.year}';
|
|
}
|
|
}
|
|
|
|
static bool isMultiDayEvent(EventModel event) {
|
|
return event.startDateTime.day != event.endDateTime.day ||
|
|
event.startDateTime.month != event.endDateTime.month ||
|
|
event.startDateTime.year != event.endDateTime.year;
|
|
}
|
|
|
|
static int calculateTotalDays(EventModel event) {
|
|
final startDate = DateTime(event.startDateTime.year,
|
|
event.startDateTime.month, event.startDateTime.day);
|
|
final endDate = DateTime(
|
|
event.endDateTime.year, event.endDateTime.month, event.endDateTime.day);
|
|
return endDate.difference(startDate).inDays + 1;
|
|
}
|
|
|
|
static int calculateDayNumber(DateTime startDate, DateTime currentDay) {
|
|
final start = DateTime(startDate.year, startDate.month, startDate.day);
|
|
final current = DateTime(currentDay.year, currentDay.month, currentDay.day);
|
|
return current.difference(start).inDays + 1;
|
|
}
|
|
|
|
static List<EventModel> getEventsForDay(
|
|
DateTime day, List<EventModel> events) {
|
|
final dayStart = DateTime(day.year, day.month, day.day, 0, 0);
|
|
final dayEnd = DateTime(day.year, day.month, day.day, 23, 59, 59);
|
|
|
|
return events.where((event) {
|
|
return !(event.endDateTime.isBefore(dayStart) ||
|
|
event.startDateTime.isAfter(dayEnd));
|
|
}).toList();
|
|
}
|
|
}
|