getNextOvulationDate method

Future<String> getNextOvulationDate()

get Next Predicted Period Date

Implementation

Future<String> getNextOvulationDate() async {
  if (_lastPeriodDate.isNotEmpty) {
    int cycleLength = getCycleLength();
    DateTime nextPeriodDate =
        CalenderDateUtils.dateFormat.parse(getPreviousPeriodDay());

    DateTime ovulationDate = nextPeriodDate
        .add(Duration(days: cycleLength))
        .add(const Duration(days: -14));

    if (DateTime.now().isAfter(ovulationDate)) {
      DateTime nextPeriodDate = CalenderDateUtils.dateFormat
          .parse(getPreviousPeriodDay())
          .add(Duration(days: cycleLength));
      DateTime ovulationDate = nextPeriodDate
          .add(Duration(days: cycleLength))
          .add(const Duration(days: -14));

      return CalenderDateUtils.dateDayFormat(ovulationDate);
    } else {
      return CalenderDateUtils.dateDayFormat(ovulationDate);
    }
    // TODO Check if ovulation date is less then current day then return blank
  }
  return "";
}