В этом уроке мы покажем вам, как найти разницу между двумя датами в неделях, месяцах и годах во Flutter. В дарте сейчас нет возможности найти разницу в неделях, месяцах и годах, есть только дни, часы, минуты и секунды.
Вы можете найти разницу между двумя датами в неделях, месяцах и годах без использования какого-либо пакета или плагина с помощью кода ниже:
DateTime mytime = DateTime.now().subtract(Duration(hours: 23456));
print(mytime); //2020-05-07 06:56:55.501654
print(DateTime.now()); ////2023-01-09 14:56:55.510348
Duration diff = DateTime.now().difference(mytime);
int diffyears1 = (diff.inDays / 365).toInt();
int diffmonths1 = (diff.inDays / 30).toInt();
int diffweeks1 = (diff.inDays / 7).toInt();
print(diffyears1); //Output: 2
print(diffmonths1); //Output: 32
print(diffweeks1); //Output: 139
Здесь годы, месяцы и недели разные, а не вместе взятые.
Теперь добавьте пакет Jiffy в свой проект, добавив следующие строки в файл pubspec.yaml.
dependencies:
flutter:
sdk: flutter
jiffy: ^5.0.0
Теперь используйте код ниже:
import 'package:jiffy/jiffy.dart';
DateTime mytime = DateTime.now().subtract(Duration(hours: 23456));
print(mytime); //2020-05-07 06:56:55.501654
print(DateTime.now()); ////2023-01-09 14:56:55.510348
num diffyears = Jiffy(DateTime.now()).diff(mytime, Units.YEAR);
num diffmonths = Jiffy(DateTime.now()).diff(mytime, Units.MONTH);
num diffweeks = Jiffy(DateTime.now()).diff(mytime, Units.WEEK);
print(diffyears); //Output: 2
print(diffmonths); //Output: 32
print(diffweeks); //Output: 139
Здесь годы, месяцы и недели не объединяются.
DateTime mytime = DateTime.now().subtract(Duration(hours: 23456));
print(mytime); //2020-05-07 06:56:55.501654
print(DateTime.now()); ////2023-01-09 14:56:55.510348
Duration diff = DateTime.now().difference(mytime);
int days = diff.inDays;
int years = (days / 365).toInt();
int months = ((days - (years * 365)) / 30).toInt();
int weeks = ((days - (years * 365 + months * 30)) / 7).toInt();
print(years); //Output: 2
print(months); //Output: 8
print(weeks); //Output: 1
//here is the combined difference on years, months and weeks
Здесь разница составляет 2 года, 8 месяцев и 1 неделю вместе взятых, в приведенном выше коде различия другие.
Таким образом, вы можете получить разницу между двумя датами в неделях, месяцах и годах.