47 lines
1.5 KiB
Dart
47 lines
1.5 KiB
Dart
import 'package:didvan/config/design_config.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:persian_datetime_picker/persian_datetime_picker.dart';
|
|
|
|
class DateTimeUtils {
|
|
static TimeOfDay stringToTimeOfDay(String input) => TimeOfDay(
|
|
hour: int.parse(input.split(':')[0]),
|
|
minute: int.parse(input.split(':')[1]),
|
|
);
|
|
|
|
static String normalizeTimeDuration(Duration input) {
|
|
String minute;
|
|
String second;
|
|
if (input.inMinutes < 10) {
|
|
minute = '0${input.inMinutes}';
|
|
} else {
|
|
minute = input.inMinutes.toString();
|
|
}
|
|
int realSeconds = input.inSeconds % 60;
|
|
if (realSeconds < 10) {
|
|
second = '0$realSeconds';
|
|
} else {
|
|
second = (realSeconds).toString();
|
|
}
|
|
return '$minute:$second';
|
|
}
|
|
|
|
static Future<String?> showDatePicker(
|
|
{String? initialDate, String? startDate, String? endDate}) async {
|
|
final initDate = initialDate == null ? null : DateTime.parse(initialDate);
|
|
final initialJalali = Jalali.fromDateTime(initDate ?? DateTime.now());
|
|
final firstDate = Jalali.fromDateTime(
|
|
startDate == null ? DateTime(2021) : DateTime.parse(startDate),
|
|
);
|
|
final lastDate = Jalali.fromDateTime(
|
|
endDate == null ? DateTime.now() : DateTime.parse(endDate),
|
|
);
|
|
final Jalali? result = await showPersianDatePicker(
|
|
context: DesignConfig.context,
|
|
initialDate: initialJalali,
|
|
firstDate: firstDate,
|
|
lastDate: lastDate,
|
|
);
|
|
return result?.toDateTime().toString();
|
|
}
|
|
}
|