Как получить дату, указав только номер дня в флаттере - PullRequest
2 голосов
/ 18 февраля 2020

Я довольно плохо знаком с трепетом. В android я мог бы легко использовать набор классов Calendar, используя cal.set(Calendar.DAY_OF_YEAR, number), и он вернет date для этого конкретного day_of_year числа. Как я могу сделать то же самое в Flutter.

В Android это то, что я бы сделал

Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_YEAR,1);  //set date using day of year
return cal.getTime(); //2020-01-01

Как мне реализовать это в Flutter.

1 Ответ

2 голосов
/ 18 февраля 2020

Я дал это go для удовольствия, я обычно не делаю дартс, поэтому извиняюсь, если это неправильно!

var dayOfYear = 1;
var millisInADay = Duration(days: 1).inMilliseconds; // 86400000    
var millisDayOfYear = dayOfYear * millisInADay;
var millisecondsSinceEpoch = DateTime(DateTime.now().year).millisecondsSinceEpoch;

var dayOfYearDate = DateTime.fromMillisecondsSinceEpoch(millisecondsSinceEpoch + millisDayOfYear);
  • За день года == 1.
  • Если в дне 86400000 миллисекунд.
  • Тогда в этом году 86400000 миллисекунд (1 x 86400000).
  • Создать новую дату для первого дня года.

  • Добавьте число миллис в году к числу миллис к началу года, начиная с эпохи. Создайте новую дату, используя эти миллисекунды с начала эпохи.

Ссылка:

https://api.dart.dev/stable/2.7.1/dart-core/DateTime-class.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...