getTimeLeft static method

String getTimeLeft({
  1. required DateTime fromDateTime,
  2. required DateTime toDateTime,
})

Implementation

static String getTimeLeft(
    {required DateTime fromDateTime, required DateTime toDateTime}) {
  // Duration diff = fromDateTime.difference(toDateTime);
  Duration diff = toDateTime.difference(fromDateTime);
  // Duration diff = DateTime.now().difference(d);
  // customPrint('skldfjl ${fromDateTime}...\n${toDateTime}');

  if (diff.inDays > 365)
    return "${(diff.inDays / 365).floor()} ${(diff.inDays / 365).floor() == 1 ? "year" : "years"} left";
  if (diff.inDays > 30)
    return "${(diff.inDays / 30).floor()} ${(diff.inDays / 30).floor() == 1 ? "month" : "months"} left";
  if (diff.inDays > 7)
    return "${(diff.inDays / 7).floor()} ${(diff.inDays / 7).floor() == 1 ? "week" : "weeks"} left";
  if (diff.inDays > 0)
    return "${diff.inDays} ${diff.inDays == 1 ? "day" : "days"} left";

  if (diff.inHours > 0)
    return "${diff.inHours} ${diff.inHours == 1 ? "hour" : "hours"}${diff.inMinutes > 0 ? ', ${diff.inMinutes} ${diff.inMinutes == 1 ? "min" : "mins"}' : ''}${diff.inSeconds > 0 ? ', ${diff.inSeconds % 60} ${diff.inSeconds == 1 ? "sec" : "secs"}' : ''} left";
  if (diff.inMinutes > 0)
    return "${diff.inMinutes} ${diff.inMinutes == 1 ? "min" : "mins"}${diff.inSeconds > 0 ? ', ${diff.inSeconds % 60} ${diff.inSeconds == 1 ? "sec" : "secs"}' : ''} left";
  if (diff.inSeconds > 3)
    return "${diff.inSeconds} ${diff.inSeconds == 1 ? "sec" : "secs"} left";
  if (diff.inSeconds < 0) {
    return 'Uploading soon';
  }
  return "just now";
}