getPregnancyChances method

Future<String> getPregnancyChances()

get expected pregnancy test date

Implementation

Future<String> getPregnancyChances() async {
  final dbHelper = MenstrualCycleDbHelper.instance;
  String pregnancyChancesStatus = "Low";
  String lastPeriodDate = await dbHelper.getLastPeriodDate();
  if (lastPeriodDate.isNotEmpty) {
    int totalDayBeforeOvulationStart =
        getFollicularDayCounts() + getPeriodDuration();
    int totalDayBeforeOvulationEnd =
        totalDayBeforeOvulationStart + defaultOvulationDay;

    final totalDiffCurrentLastPeriod =
        DateTime.now().difference(DateTime.parse(lastPeriodDate)).inDays + 1;
    if (totalDiffCurrentLastPeriod >= getPeriodDuration() &&
        totalDiffCurrentLastPeriod < totalDayBeforeOvulationStart) {
      pregnancyChancesStatus = "Medium";
    } else if (totalDiffCurrentLastPeriod >= totalDayBeforeOvulationStart &&
        totalDiffCurrentLastPeriod < totalDayBeforeOvulationEnd) {
      pregnancyChancesStatus = "High";
    } else if (totalDiffCurrentLastPeriod >= totalDayBeforeOvulationEnd &&
        totalDiffCurrentLastPeriod <= getCycleLength()) {
      pregnancyChancesStatus = "Low";
    }
  }
  return pregnancyChancesStatus;
}