You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.7 KiB
Dart
95 lines
2.7 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:intl/intl.dart';
|
|
|
|
class DateHelper {
|
|
static String formatDateT(String dateString) {
|
|
return dateString.split('T')[0];
|
|
}
|
|
|
|
static DateTime parseStringToDate(String dateString) {
|
|
final formatter = DateFormat('yyyy-MM-dd');
|
|
return formatter.parse(dateString);
|
|
}
|
|
|
|
static String formatAsShortDate(DateTime date) {
|
|
final formatter = DateFormat.yMd();
|
|
return formatter.format(date);
|
|
}
|
|
|
|
static String formatAsLongDate(DateTime date) {
|
|
final formatter = DateFormat.yMMMMEEEEd();
|
|
return formatter.format(date);
|
|
}
|
|
|
|
static String formatAsTime(DateTime date) {
|
|
final formatter = DateFormat.jm();
|
|
return formatter.format(date);
|
|
}
|
|
|
|
static String formatAsYearMonthDay(DateTime date) {
|
|
final formatter = DateFormat('y-MM-d');
|
|
return date != null ? formatter.format(date) : "N/A";
|
|
}
|
|
|
|
static String formatAsCustomPattern(DateTime date, String pattern) {
|
|
final formatter = DateFormat(pattern);
|
|
return formatter.format(date);
|
|
}
|
|
|
|
static String formatAsDayMonthYear(DateTime? date) {
|
|
final formatter = DateFormat('d MMM, y');
|
|
return date != null ? formatter.format(date) : "N/A";
|
|
}
|
|
|
|
static String formatAsMonthDayYear(DateTime date) {
|
|
final formatter = DateFormat('MMMM d, y');
|
|
return formatter.format(date);
|
|
}
|
|
|
|
static String formatAsMonthYear(DateTime date) {
|
|
final formatter = DateFormat('MMMM y');
|
|
return formatter.format(date);
|
|
}
|
|
}
|
|
|
|
extension TimeOfDayUtils on TimeOfDay {
|
|
bool isAfter(TimeOfDay other) {
|
|
final thisTime = DateTime(0, 1, 1, hour, minute);
|
|
final otherTime = DateTime(0, 1, 1, other.hour, other.minute);
|
|
return thisTime.isAfter(otherTime);
|
|
}
|
|
|
|
bool isBefore(TimeOfDay other) {
|
|
final thisTime = DateTime(0, 1, 1, hour, minute);
|
|
final otherTime = DateTime(0, 1, 1, other.hour, other.minute);
|
|
return thisTime.isBefore(otherTime);
|
|
}
|
|
|
|
static TimeOfDay convertStringToTimeOfDay(String timeString) {
|
|
bool is12HourFormat = timeString.contains(RegExp(r'AM|PM', caseSensitive: false));
|
|
|
|
int hour;
|
|
int minute;
|
|
|
|
if (is12HourFormat) {
|
|
List<String> parts = timeString.split(' '); // Split time and AM/PM part
|
|
List<String> timeParts = parts[0].split(':'); // Split hours and minutes
|
|
|
|
hour = int.parse(timeParts[0]);
|
|
minute = int.parse(timeParts[1]);
|
|
|
|
if (parts[1].toUpperCase() == 'PM' && hour != 12) {
|
|
hour += 12;
|
|
} else if (parts[1].toUpperCase() == 'AM' && hour == 12) {
|
|
hour = 0;
|
|
}
|
|
} else {
|
|
List<String> timeParts = timeString.split(':');
|
|
hour = int.parse(timeParts[0]);
|
|
minute = int.parse(timeParts[1]);
|
|
}
|
|
|
|
return TimeOfDay(hour: hour, minute: minute);
|
|
}
|
|
}
|