calculateTimeBetweenTwoDate method
Calculates the time difference between two dates and formats it as a string.
This method calculates the difference between dateTimeFirst and
dateTimeSecond, and formats the result as a string in the format
"Xd Xh Xm Xs Xms", where X represents the number of days, hours, minutes,
seconds, and milliseconds, respectively.
Returns a String representing the formatted time difference.
Implementation
String calculateTimeBetweenTwoDate(
DateTime dateTimeFirst,
DateTime dateTimeSecond,
) {
const int secondInDay = 86400;
const int secondInHour = 3600;
const int secondInMinute = 60;
String defaultStringResult = '0s';
Duration difference = dateTimeSecond.difference(dateTimeFirst);
int differenceInSecond = difference.inSeconds;
int days = (differenceInSecond / secondInDay).truncate();
differenceInSecond -= (days * secondInDay);
int hours = (differenceInSecond / secondInHour).truncate();
differenceInSecond -= (hours * secondInHour);
int minutes = (differenceInSecond / secondInMinute).truncate();
differenceInSecond -= (minutes * secondInMinute);
int seconds = differenceInSecond;
int milliseconds = difference.inMilliseconds.remainder(1000);
String daysString = days > 0 ? '${days}d ' : '';
String hoursString = hours > 0 || daysString.isNotEmpty ? '${hours}h ' : '';
String minutesString =
minutes > 0 || hoursString.isNotEmpty ? '${minutes}m ' : '';
String secondsString =
seconds > 0 || minutesString.isNotEmpty ? '${seconds}s ' : '';
String millisecondsString =
milliseconds > 0 || secondsString.isNotEmpty ? '${milliseconds}ms' : '';
String result = daysString +
hoursString +
minutesString +
secondsString +
millisecondsString;
if (result.isEmpty) {
return defaultStringResult;
}
return result;
}