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;
}