didvan-app/lib/utils/date_time.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();
}
}