diff --git a/lib/utils/dates.dart b/lib/utils/dates.dart index f8efda91e..8b1fd9457 100644 --- a/lib/utils/dates.dart +++ b/lib/utils/dates.dart @@ -84,14 +84,13 @@ String calculateStartDate({ final date = addMonths(firstDayOfMonth, (1 + offset) * -1); return convertDateTimeToSqlDate(date); case DateRange.thisQuarter: - final monthOffset = today.month % 3 - 1; - final date = - addMonths(firstDayOfMonth, ((offset * 3) + monthOffset) * -1); + final monthOffset = (today.month - 1) % 3 * -1; + final date = addMonths(firstDayOfMonth, (offset * -3) + monthOffset); return convertDateTimeToSqlDate(date); case DateRange.lastQuarter: - final monthOffset = today.month % 3 + 2; + final monthOffset = (today.month - 1) % 3 * -1; final date = - addMonths(firstDayOfMonth, ((offset * 3) + monthOffset) * -1); + addMonths(firstDayOfMonth, ((offset + 1) * -3) + monthOffset); return convertDateTimeToSqlDate(date); case DateRange.thisYear: final date = addYears(firstDayOfYear, offset * -1); @@ -140,15 +139,14 @@ String calculateEndDate({ addMonths(firstDayOfMonth, offset * -1).subtract(Duration(days: 1)); return convertDateTimeToSqlDate(date); case DateRange.thisQuarter: - final monthOffset = today.month % 3 - 1; - final date = - addMonths(firstDayOfMonth, (((offset - 1) * 3) + monthOffset) * -1) - .subtract(Duration(days: 1)); + final monthOffset = (today.month - 1) % 3 * -1; + final date = addMonths(firstDayOfMonth, (offset * -3) + monthOffset + 3) + .subtract(Duration(days: 1)); return convertDateTimeToSqlDate(date); case DateRange.lastQuarter: - final monthOffset = today.month % 3 + 2; + final monthOffset = (today.month - 1) % 3 * -1; final date = - addMonths(firstDayOfMonth, (((offset - 1) * 3) + monthOffset) * -1) + addMonths(firstDayOfMonth, ((offset + 1) * -3) + monthOffset + 3) .subtract(Duration(days: 1)); return convertDateTimeToSqlDate(date); case DateRange.thisYear: