liturgy function
Calculate liturgy of the date
day, using the isEpiphanyOn6thJan
flag.
Implementation
LiturgyModel? liturgy(DateTime date, bool isEpiphanyOn6thJan) {
DateTime dateCleaned = DateUtilities.cleanDate(date);
int? lentWeekNumber = LiturgyFunctions.lentWeek(dateCleaned);
if (lentWeekNumber != null && DateUtilities.isSunday(dateCleaned)) {
return LiturgyModel(
category: LiturgyEnum.lent, number: lentWeekNumber, isFeast: true);
}
bool ashResult = LiturgyFunctions.ash(dateCleaned);
if (ashResult && dateCleaned.weekday == DateTime.wednesday) {
return LiturgyModel(
category: LiturgyEnum.ash,
dayOfWeek: dateCleaned.weekday,
isFeast: true);
}
int? holyWeekNumber = LiturgyFunctions.holyWeek(dateCleaned);
if (holyWeekNumber != null) {
return LiturgyModel(
category: LiturgyEnum.holyWeek,
dayOfWeek: holyWeekNumber,
isFeast: holyWeekNumber >= DateTime.thursday &&
holyWeekNumber <= DateTime.saturday);
}
LiturgyEnum? solemnityAfterEasterCategory =
LiturgyFunctions.solemnityAfterEaster(dateCleaned);
if (solemnityAfterEasterCategory != null) {
return LiturgyModel(category: solemnityAfterEasterCategory, isFeast: true);
}
int? sundayEasterNumber = LiturgyFunctions.easterWeek(dateCleaned);
if (sundayEasterNumber != null && DateUtilities.isSunday(dateCleaned)) {
return LiturgyModel(
category: LiturgyEnum.easter,
number: sundayEasterNumber,
isFeast: true);
}
int? sundayAdventNumber = LiturgyFunctions.sundayAdvent(dateCleaned);
if (sundayAdventNumber != null) {
return LiturgyModel(
category: LiturgyEnum.advent,
number: sundayAdventNumber,
isFeast: true);
}
LiturgyEnum? solemnityCalculatedCategory =
LiturgyFunctions.solemnityCalculated(dateCleaned, isEpiphanyOn6thJan);
if (solemnityCalculatedCategory != null) {
return LiturgyModel(category: solemnityCalculatedCategory, isFeast: true);
}
LiturgyModel? feastLiturgy = LiturgyFunctions.feast(dateCleaned);
if (feastLiturgy != null) {
return feastLiturgy;
}
LiturgyModel? ferialLiturgy =
LiturgyFunctions.ferial(dateCleaned, isEpiphanyOn6thJan);
if (ferialLiturgy != null) {
return ferialLiturgy;
}
return null;
}