initFutureOvulationDay function
dynamic
initFutureOvulationDay()
get future prediction ovulation dates
Implementation
initFutureOvulationDay() async {
final instance = MenstrualCycleWidget.instance!;
List<String> futureOvulationDays = [];
int generateMonth = 12; // get from configuration
int cycleLength = instance.getCycleLength() - 1;
if (instance.lastPeriodDate.isNotEmpty) {
DateTime nextPeriodDate = DateFormat("yyyy-MM-dd")
.parse(instance.lastPeriodDate)
.add(Duration(days: cycleLength - 1));
// printLogs("Dates: ${defaultDateFormat.format(nextPeriodDate)}");
for (int index = 0; index < generateMonth; index++) {
// Ovulation day
DateTime ovulationDate = nextPeriodDate
.add(Duration(days: cycleLength))
.add(const Duration(days: -15)); // TODO get based on cycleLength
futureOvulationDays.add(defaultDateFormat.format(ovulationDate));
//printLogs("Dates: ${defaultDateFormat.format(ovulationDate)}");
DateTime newDatetime = nextPeriodDate.add(Duration(days: cycleLength));
nextPeriodDate = newDatetime;
}
}
return futureOvulationDays;
}