|  |  | import 'package:intl/intl.dart';
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | class DateUtil {
 | 
						
						
						
							|  |  |   /// convert String To Date function
 | 
						
						
						
							|  |  |   /// [date] String we want to convert
 | 
						
						
						
							|  |  |   ///
 | 
						
						
						
							|  |  |   ///
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static DateTime convertStringToDateMarathon(String date) {
 | 
						
						
						
							|  |  |     // return DateTime(2025, 2, 5);
 | 
						
						
						
							|  |  |     if (date != null) {
 | 
						
						
						
							|  |  |       const start = "/Date(";
 | 
						
						
						
							|  |  |       const end = "+0300)";
 | 
						
						
						
							|  |  |       int startIndex = date.indexOf(start);
 | 
						
						
						
							|  |  |       int endIndex = date.indexOf(end, startIndex + start.length);
 | 
						
						
						
							|  |  |       return DateTime.fromMillisecondsSinceEpoch(
 | 
						
						
						
							|  |  |         int.parse(
 | 
						
						
						
							|  |  |           date.substring(startIndex + start.length, endIndex),
 | 
						
						
						
							|  |  |         ),
 | 
						
						
						
							|  |  |       );
 | 
						
						
						
							|  |  |     } else
 | 
						
						
						
							|  |  |       return DateTime.now();
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static DateTime convertStringToDate(String date) {
 | 
						
						
						
							|  |  |     // /Date(1585774800000+0300)/
 | 
						
						
						
							|  |  |     if (date != null) {
 | 
						
						
						
							|  |  |       const start = "/Date(";
 | 
						
						
						
							|  |  |       const end = "+0300)";
 | 
						
						
						
							|  |  |       int startIndex = date.indexOf(start);
 | 
						
						
						
							|  |  |       int endIndex = date.indexOf(end, startIndex + start.length);
 | 
						
						
						
							|  |  |       return DateTime.fromMillisecondsSinceEpoch(
 | 
						
						
						
							|  |  |         int.parse(
 | 
						
						
						
							|  |  |           date.substring(startIndex + start.length, endIndex),
 | 
						
						
						
							|  |  |         ),
 | 
						
						
						
							|  |  |       );
 | 
						
						
						
							|  |  |     } else
 | 
						
						
						
							|  |  |       return DateTime.now();
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static DateTime convertSimpleStringDateToDate(String date, {bool isITG = false}) {
 | 
						
						
						
							|  |  |     // print(date.toUpperCase());
 | 
						
						
						
							|  |  |     return getDateTimeFromString(date.split(" ")[0], date.toUpperCase().split(" ")[1] + " " + date.toUpperCase().split(" ")[2], isITG: isITG);
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static DateTime getDateTimeFromString(String date, String time, {bool isITG = false}) {
 | 
						
						
						
							|  |  |     var hours = num.parse(time.split(":")[0]);
 | 
						
						
						
							|  |  |     var mins = time.split(":")[1];
 | 
						
						
						
							|  |  |     var secs = time.split(":")[2].split(" ")[0];
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     String meridium = time.split(" ")[1];
 | 
						
						
						
							|  |  |     if (meridium == "PM") {
 | 
						
						
						
							|  |  |       if (hours != 12) {
 | 
						
						
						
							|  |  |         hours = hours + 12;
 | 
						
						
						
							|  |  |       }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |     if (meridium == "AM") {
 | 
						
						
						
							|  |  |       if (hours == 12) {
 | 
						
						
						
							|  |  |         hours = 00;
 | 
						
						
						
							|  |  |       }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |     date = date + " $hours:$mins:$secs";
 | 
						
						
						
							|  |  |     DateTime returnDate = isITG ? DateFormat("dd/MM/yyyy HH:mm:ss", "en_US").parse(date) : DateFormat("MM/dd/yyyy HH:mm:ss", "en_US").parse(date);
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     return returnDate;
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static DateTime convertSimpleStringDateToDateddMMyyyy(String date) {
 | 
						
						
						
							|  |  |     return DateFormat("MM/dd/yyyy hh:mm:ss", "en_US").parse(date);
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static DateTime convertStringToDateNoTimeZone(String date) {
 | 
						
						
						
							|  |  |     // /Date(1585774800000+0300)/
 | 
						
						
						
							|  |  |     if (date != null) {
 | 
						
						
						
							|  |  |       const start = "/Date(";
 | 
						
						
						
							|  |  |       const end = ")";
 | 
						
						
						
							|  |  |       int startIndex = date.indexOf(start);
 | 
						
						
						
							|  |  |       int endIndex = date.indexOf(end, startIndex + start.length);
 | 
						
						
						
							|  |  |       return DateTime.fromMillisecondsSinceEpoch(
 | 
						
						
						
							|  |  |         int.parse(
 | 
						
						
						
							|  |  |           date.substring(startIndex + start.length, endIndex),
 | 
						
						
						
							|  |  |         ),
 | 
						
						
						
							|  |  |       );
 | 
						
						
						
							|  |  |     } else
 | 
						
						
						
							|  |  |       return DateTime.now();
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static DateTime convertStringToDateTime(String date) {
 | 
						
						
						
							|  |  |     if (date != null) {
 | 
						
						
						
							|  |  |       try {
 | 
						
						
						
							|  |  |         var dateT = date.split('/');
 | 
						
						
						
							|  |  |         var year = dateT[2].substring(0, 4);
 | 
						
						
						
							|  |  |         var dateP = DateTime(int.parse(year), int.parse(dateT[1]), int.parse(dateT[0]));
 | 
						
						
						
							|  |  |         return dateP;
 | 
						
						
						
							|  |  |       } catch (e) {
 | 
						
						
						
							|  |  |         print(e);
 | 
						
						
						
							|  |  |       }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       return DateTime.now();
 | 
						
						
						
							|  |  |     } else {
 | 
						
						
						
							|  |  |       return DateTime.now();
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String convertDateToString(DateTime date) {
 | 
						
						
						
							|  |  |     const start = "/Date(";
 | 
						
						
						
							|  |  |     const end = "+0300)/";
 | 
						
						
						
							|  |  |     int milliseconds = date.millisecondsSinceEpoch;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     return start + "$milliseconds" + end;
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String convertDateToStringLocation(DateTime date) {
 | 
						
						
						
							|  |  |     const start = "/Date(";
 | 
						
						
						
							|  |  |     const end = ")/";
 | 
						
						
						
							|  |  |     int milliseconds = date.millisecondsSinceEpoch;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     return start + "$milliseconds" + end;
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String formatDateToDate(DateTime date, bool isArabic) {
 | 
						
						
						
							|  |  |     return DateFormat('dd MMM yyy', isArabic ? "ar_SA" : "en_US").format(date);
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String formatDateToTime(DateTime date) {
 | 
						
						
						
							|  |  |     return DateFormat('hh:mm a', "en_US").format(date);
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String yearMonthDay(DateTime dateTime) {
 | 
						
						
						
							|  |  |     String dateFormat = '${dateTime.year}-${dateTime.month}-${dateTime.day}';
 | 
						
						
						
							|  |  |     return dateFormat;
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String time(DateTime dateTime) {
 | 
						
						
						
							|  |  |     String dateFormat = '${dateTime.hour}:${dateTime.minute}:00';
 | 
						
						
						
							|  |  |     return dateFormat;
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String convertDateMSToJsonDate(utc) {
 | 
						
						
						
							|  |  |     var dt = DateTime.fromMicrosecondsSinceEpoch(utc);
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     return "/Date(" + (dt.millisecondsSinceEpoch * 1000).toString() + '+0300' + ")/";
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// check Date
 | 
						
						
						
							|  |  |   /// [dateString] String we want to convert
 | 
						
						
						
							|  |  |   static String checkDate(DateTime checkedTime) {
 | 
						
						
						
							|  |  |     DateTime currentTime = DateTime.now();
 | 
						
						
						
							|  |  |     if ((currentTime.year == checkedTime.year) && (currentTime.month == checkedTime.month) && (currentTime.day == checkedTime.day)) {
 | 
						
						
						
							|  |  |       return "Today";
 | 
						
						
						
							|  |  |     } else if ((currentTime.year == checkedTime.year) && (currentTime.month == checkedTime.month)) {
 | 
						
						
						
							|  |  |       if ((currentTime.day - checkedTime.day) == 1) {
 | 
						
						
						
							|  |  |         return "YESTERDAY";
 | 
						
						
						
							|  |  |       } else if ((currentTime.day - checkedTime.day) == -1) {
 | 
						
						
						
							|  |  |         return "Tomorrow";
 | 
						
						
						
							|  |  |       }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |       if ((currentTime.day - checkedTime.day) <= -2) {
 | 
						
						
						
							|  |  |         return "Next Week";
 | 
						
						
						
							|  |  |       } else {
 | 
						
						
						
							|  |  |         return "Old Date";
 | 
						
						
						
							|  |  |       }
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |     return "Old Date";
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String getDateFormatted(String date) {
 | 
						
						
						
							|  |  |     DateTime dateObj = DateUtil.convertStringToDate(date);
 | 
						
						
						
							|  |  |     return DateUtil.getWeekDay(dateObj.weekday) + ", " + dateObj.day.toString() + " " + DateUtil.getMonth(dateObj.month) + " " + dateObj.year.toString();
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String getISODateFormat(DateTime dateTime) {
 | 
						
						
						
							|  |  |     // 2020-04-30T00:00:00.000
 | 
						
						
						
							|  |  |     return dateTime.toIso8601String();
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// get month by
 | 
						
						
						
							|  |  |   /// [month] convert month number in to month name
 | 
						
						
						
							|  |  |   static String getMonth(int month) {
 | 
						
						
						
							|  |  |     switch (month) {
 | 
						
						
						
							|  |  |       case 1:
 | 
						
						
						
							|  |  |         return "January";
 | 
						
						
						
							|  |  |       case 2:
 | 
						
						
						
							|  |  |         return "February";
 | 
						
						
						
							|  |  |       case 3:
 | 
						
						
						
							|  |  |         return "March";
 | 
						
						
						
							|  |  |       case 4:
 | 
						
						
						
							|  |  |         return "April";
 | 
						
						
						
							|  |  |       case 5:
 | 
						
						
						
							|  |  |         return "May";
 | 
						
						
						
							|  |  |       case 6:
 | 
						
						
						
							|  |  |         return "June";
 | 
						
						
						
							|  |  |       case 7:
 | 
						
						
						
							|  |  |         return "July";
 | 
						
						
						
							|  |  |       case 8:
 | 
						
						
						
							|  |  |         return "August";
 | 
						
						
						
							|  |  |       case 9:
 | 
						
						
						
							|  |  |         return "September";
 | 
						
						
						
							|  |  |       case 10:
 | 
						
						
						
							|  |  |         return "October";
 | 
						
						
						
							|  |  |       case 11:
 | 
						
						
						
							|  |  |         return "November";
 | 
						
						
						
							|  |  |       case 12:
 | 
						
						
						
							|  |  |         return "December";
 | 
						
						
						
							|  |  |       default:
 | 
						
						
						
							|  |  |         return "";
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// get month by
 | 
						
						
						
							|  |  |   /// [month] convert month number in to month name in Arabic
 | 
						
						
						
							|  |  |   static String getMonthArabic(int month) {
 | 
						
						
						
							|  |  |     switch (month) {
 | 
						
						
						
							|  |  |       case 1:
 | 
						
						
						
							|  |  |         return "يناير";
 | 
						
						
						
							|  |  |       case 2:
 | 
						
						
						
							|  |  |         return " فبراير";
 | 
						
						
						
							|  |  |       case 3:
 | 
						
						
						
							|  |  |         return "مارس";
 | 
						
						
						
							|  |  |       case 4:
 | 
						
						
						
							|  |  |         return "أبريل";
 | 
						
						
						
							|  |  |       case 5:
 | 
						
						
						
							|  |  |         return "مايو";
 | 
						
						
						
							|  |  |       case 6:
 | 
						
						
						
							|  |  |         return "يونيو";
 | 
						
						
						
							|  |  |       case 7:
 | 
						
						
						
							|  |  |         return "يوليو";
 | 
						
						
						
							|  |  |       case 8:
 | 
						
						
						
							|  |  |         return "أغسطس";
 | 
						
						
						
							|  |  |       case 9:
 | 
						
						
						
							|  |  |         return "سبتمبر";
 | 
						
						
						
							|  |  |       case 10:
 | 
						
						
						
							|  |  |         return " اكتوبر";
 | 
						
						
						
							|  |  |       case 11:
 | 
						
						
						
							|  |  |         return " نوفمبر";
 | 
						
						
						
							|  |  |       case 12:
 | 
						
						
						
							|  |  |         return "ديسمبر";
 | 
						
						
						
							|  |  |       default:
 | 
						
						
						
							|  |  |         return "";
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static int getMonthByName(String month) {
 | 
						
						
						
							|  |  |     switch (month.toLowerCase()) {
 | 
						
						
						
							|  |  |       case 'january':
 | 
						
						
						
							|  |  |         return 1;
 | 
						
						
						
							|  |  |       case 'february':
 | 
						
						
						
							|  |  |         return 2;
 | 
						
						
						
							|  |  |       case 'march':
 | 
						
						
						
							|  |  |         return 3;
 | 
						
						
						
							|  |  |       case 'april':
 | 
						
						
						
							|  |  |         return 4;
 | 
						
						
						
							|  |  |       case 'may':
 | 
						
						
						
							|  |  |         return 5;
 | 
						
						
						
							|  |  |       case 'june':
 | 
						
						
						
							|  |  |         return 6;
 | 
						
						
						
							|  |  |       case 'july':
 | 
						
						
						
							|  |  |         return 7;
 | 
						
						
						
							|  |  |       case 'august':
 | 
						
						
						
							|  |  |         return 8;
 | 
						
						
						
							|  |  |       case 'september':
 | 
						
						
						
							|  |  |         return 9;
 | 
						
						
						
							|  |  |       case 'october':
 | 
						
						
						
							|  |  |         return 10;
 | 
						
						
						
							|  |  |       case 'november':
 | 
						
						
						
							|  |  |         return 11;
 | 
						
						
						
							|  |  |       case 'december':
 | 
						
						
						
							|  |  |         return 12;
 | 
						
						
						
							|  |  |       default:
 | 
						
						
						
							|  |  |         return 0;
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static DateTime getMonthDateTime(String month, yearName) {
 | 
						
						
						
							|  |  |     DateTime? date;
 | 
						
						
						
							|  |  |     try {
 | 
						
						
						
							|  |  |       date = DateTime(int.parse(yearName), getMonthByName(month));
 | 
						
						
						
							|  |  |     } catch (e) {
 | 
						
						
						
							|  |  |       print(e);
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |     return date ?? DateTime.now();
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// get month by
 | 
						
						
						
							|  |  |   /// [weekDay] convert week day in int to week day name
 | 
						
						
						
							|  |  |   static String getWeekDay(int weekDay) {
 | 
						
						
						
							|  |  |     switch (weekDay) {
 | 
						
						
						
							|  |  |       case 1:
 | 
						
						
						
							|  |  |         return "Monday";
 | 
						
						
						
							|  |  |       case 2:
 | 
						
						
						
							|  |  |         return "Tuesday";
 | 
						
						
						
							|  |  |       case 3:
 | 
						
						
						
							|  |  |         return "Wednesday";
 | 
						
						
						
							|  |  |       case 4:
 | 
						
						
						
							|  |  |         return "Thursday";
 | 
						
						
						
							|  |  |       case 5:
 | 
						
						
						
							|  |  |         return "Friday";
 | 
						
						
						
							|  |  |       case 6:
 | 
						
						
						
							|  |  |         return "Saturday ";
 | 
						
						
						
							|  |  |       case 7:
 | 
						
						
						
							|  |  |         return "Sunday";
 | 
						
						
						
							|  |  |       default:
 | 
						
						
						
							|  |  |         return "";
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// get month by
 | 
						
						
						
							|  |  |   /// [weekDay] convert week day in int to week day name arabic
 | 
						
						
						
							|  |  |   static String getWeekDayArabic(int weekDay) {
 | 
						
						
						
							|  |  |     switch (weekDay) {
 | 
						
						
						
							|  |  |       case 1:
 | 
						
						
						
							|  |  |         return "الاثنين";
 | 
						
						
						
							|  |  |       case 2:
 | 
						
						
						
							|  |  |         return "الثلاثاء";
 | 
						
						
						
							|  |  |       case 3:
 | 
						
						
						
							|  |  |         return "الاربعاء";
 | 
						
						
						
							|  |  |       case 4:
 | 
						
						
						
							|  |  |         return "الخميس";
 | 
						
						
						
							|  |  |       case 5:
 | 
						
						
						
							|  |  |         return "الجمعه";
 | 
						
						
						
							|  |  |       case 6:
 | 
						
						
						
							|  |  |         return "السبت ";
 | 
						
						
						
							|  |  |       case 7:
 | 
						
						
						
							|  |  |         return "الاحد";
 | 
						
						
						
							|  |  |       default:
 | 
						
						
						
							|  |  |         return "";
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String getWeekDayEnglish(int weekDay) {
 | 
						
						
						
							|  |  |     switch (weekDay) {
 | 
						
						
						
							|  |  |       case 1:
 | 
						
						
						
							|  |  |         return "Monday";
 | 
						
						
						
							|  |  |       case 2:
 | 
						
						
						
							|  |  |         return "Tuesday";
 | 
						
						
						
							|  |  |       case 3:
 | 
						
						
						
							|  |  |         return "Wednesday";
 | 
						
						
						
							|  |  |       case 4:
 | 
						
						
						
							|  |  |         return "Thursday";
 | 
						
						
						
							|  |  |       case 5:
 | 
						
						
						
							|  |  |         return "Friday";
 | 
						
						
						
							|  |  |       case 6:
 | 
						
						
						
							|  |  |         return "Saturday ";
 | 
						
						
						
							|  |  |       case 7:
 | 
						
						
						
							|  |  |         return "Sunday";
 | 
						
						
						
							|  |  |       default:
 | 
						
						
						
							|  |  |         return "";
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// get data formatted like Apr 26,2020
 | 
						
						
						
							|  |  |   /// [dateTime] convert DateTime to data formatted
 | 
						
						
						
							|  |  |   static String getMonthDayYearDateFormatted(DateTime dateTime) {
 | 
						
						
						
							|  |  |     if (dateTime != null)
 | 
						
						
						
							|  |  |       return getMonth(dateTime.month) + " " + dateTime.day.toString() + ", " + dateTime.year.toString();
 | 
						
						
						
							|  |  |     else
 | 
						
						
						
							|  |  |       return "";
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// get data formatted like Apr 26,2020
 | 
						
						
						
							|  |  |   /// [dateTime] convert DateTime to data formatted Arabic
 | 
						
						
						
							|  |  |   static String getMonthDayYearDateFormattedAr(DateTime dateTime) {
 | 
						
						
						
							|  |  |     if (dateTime != null)
 | 
						
						
						
							|  |  |       return getMonthArabic(dateTime.month) + " " + dateTime.day.toString() + ", " + dateTime.year.toString();
 | 
						
						
						
							|  |  |     else
 | 
						
						
						
							|  |  |       return "";
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// get data formatted like Thursday, Apr 26,2020
 | 
						
						
						
							|  |  |   /// [dateTime] convert DateTime to date formatted
 | 
						
						
						
							|  |  |   static String getWeekDayMonthDayYearDateFormatted(DateTime dateTime, String lang) {
 | 
						
						
						
							|  |  |     // print(dateTime);
 | 
						
						
						
							|  |  |     // print(dateTime.weekday);
 | 
						
						
						
							|  |  |     // print(dateTime.weekday.getDayOfWeekEnumValue.value);
 | 
						
						
						
							|  |  |     if (dateTime != null)
 | 
						
						
						
							|  |  |       return lang == 'en'
 | 
						
						
						
							|  |  |           ? getWeekDayEnglish(dateTime.weekday) + ", " + getMonth(dateTime.month) + " " + dateTime.day.toString() + " " + dateTime.year.toString()
 | 
						
						
						
							|  |  |           : getWeekDayArabic(dateTime.weekday) + ", " + dateTime.day.toString() + " " + getMonthArabic(dateTime.month) + " " + dateTime.year.toString();
 | 
						
						
						
							|  |  |     else
 | 
						
						
						
							|  |  |       return "";
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String getMonthDayYearLangDateFormatted(DateTime dateTime, String lang) {
 | 
						
						
						
							|  |  |     if (dateTime != null)
 | 
						
						
						
							|  |  |       return lang == 'en'
 | 
						
						
						
							|  |  |           ? getMonth(dateTime.month) + " " + dateTime.day.toString() + " " + dateTime.year.toString()
 | 
						
						
						
							|  |  |           : dateTime.day.toString() + " " + getMonthArabic(dateTime.month) + " " + dateTime.year.toString();
 | 
						
						
						
							|  |  |     else
 | 
						
						
						
							|  |  |       return "";
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// get data  formatted like 26/4/2020
 | 
						
						
						
							|  |  |   static String getDayMonthYearLangDateFormatted(DateTime dateTime, String lang) {
 | 
						
						
						
							|  |  |     if (dateTime != null)
 | 
						
						
						
							|  |  |       return lang == 'en'
 | 
						
						
						
							|  |  |           ? dateTime.day.toString() + " " + getMonth(dateTime.month) + " " + dateTime.year.toString()
 | 
						
						
						
							|  |  |           : dateTime.day.toString() + " " + getMonthArabic(dateTime.month) + " " + dateTime.year.toString();
 | 
						
						
						
							|  |  |     else
 | 
						
						
						
							|  |  |       return "";
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String getMonthYearLangDateFormatted(DateTime dateTime, String lang) {
 | 
						
						
						
							|  |  |     if (dateTime != null)
 | 
						
						
						
							|  |  |       return lang == 'en' ? getMonth(dateTime.month) + " " + dateTime.year.toString() : getMonthArabic(dateTime.month) + " " + dateTime.year.toString();
 | 
						
						
						
							|  |  |     else
 | 
						
						
						
							|  |  |       return "";
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// get data  formatted like 26/4/2020
 | 
						
						
						
							|  |  |   /// [dateTime] convert DateTime to data formatted
 | 
						
						
						
							|  |  |   static String getDayMonthYearDateFormatted(DateTime dateTime) {
 | 
						
						
						
							|  |  |     if (dateTime != null)
 | 
						
						
						
							|  |  |       return dateTime.day.toString() + "/" + dateTime.month.toString() + "/" + dateTime.year.toString();
 | 
						
						
						
							|  |  |     else
 | 
						
						
						
							|  |  |       return "";
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// get data  formatted like 26/4/2020
 | 
						
						
						
							|  |  |   /// [dateTime] convert DateTime to data formatted
 | 
						
						
						
							|  |  |   static String getDayMonthDateFormatted(DateTime dateTime) {
 | 
						
						
						
							|  |  |     if (dateTime != null)
 | 
						
						
						
							|  |  |       return DateFormat('dd/MM', "en_US").format(dateTime);
 | 
						
						
						
							|  |  |     else
 | 
						
						
						
							|  |  |       return "";
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String formatDuration(Duration d) {
 | 
						
						
						
							|  |  |     var seconds = d.inSeconds;
 | 
						
						
						
							|  |  |     var days = seconds ~/ Duration.secondsPerDay;
 | 
						
						
						
							|  |  |     seconds -= days * Duration.secondsPerDay;
 | 
						
						
						
							|  |  |     var hours = seconds ~/ Duration.secondsPerHour;
 | 
						
						
						
							|  |  |     seconds -= hours * Duration.secondsPerHour;
 | 
						
						
						
							|  |  |     var minutes = seconds ~/ Duration.secondsPerMinute;
 | 
						
						
						
							|  |  |     seconds -= minutes * Duration.secondsPerMinute;
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     List<String> tokens = [];
 | 
						
						
						
							|  |  |     if (days != 0) {
 | 
						
						
						
							|  |  |       tokens.add('$days days');
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |     if (tokens.isNotEmpty || hours != 0) {
 | 
						
						
						
							|  |  |       tokens.add('$hours hours');
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |     if (tokens.isNotEmpty || minutes != 0) {
 | 
						
						
						
							|  |  |       tokens.add('$minutes mins');
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  |     tokens.add('$seconds secs');
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     return tokens.join(' ');
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// get data  formatted like 26/4/2020
 | 
						
						
						
							|  |  |   /// [dateTime] convert DateTime to data formatted according to language
 | 
						
						
						
							|  |  |   static String getDayMonthYearDateFormattedLang(DateTime dateTime, bool isArabic) {
 | 
						
						
						
							|  |  |     if (dateTime != null)
 | 
						
						
						
							|  |  |       return DateFormat('dd/MM/yyyy', isArabic ? "ar_SA" : "en_US").format(dateTime);
 | 
						
						
						
							|  |  |     else
 | 
						
						
						
							|  |  |       return "";
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// get data  formatted like 10:30 according to lang
 | 
						
						
						
							|  |  |   static String formatDateToTimeLang(DateTime date, bool isArabic) {
 | 
						
						
						
							|  |  |     return DateFormat('hh:mm a', isArabic ? "ar_SA" : "en_US").format(date);
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// get data  formatted like 26/4/2020 10:30
 | 
						
						
						
							|  |  |   /// [dateTime] convert DateTime to data formatted
 | 
						
						
						
							|  |  |   static String getDayMonthYearHourMinuteDateFormatted(DateTime dateTime) {
 | 
						
						
						
							|  |  |     if (dateTime != null)
 | 
						
						
						
							|  |  |       return dateTime.day.toString() + "/" + dateTime.month.toString() + "/" + dateTime.year.toString() + " " + DateFormat('HH:mm', "en_US").format(dateTime);
 | 
						
						
						
							|  |  |     else
 | 
						
						
						
							|  |  |       return "";
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   /// get data  formatted like 2020-8-13 09:43:00
 | 
						
						
						
							|  |  |   /// [dateTime] convert DateTime to data formatted
 | 
						
						
						
							|  |  |   static String getYearMonthDayHourMinSecDateFormatted(DateTime dateTime) {
 | 
						
						
						
							|  |  |     if (dateTime != null)
 | 
						
						
						
							|  |  |       return dateTime.year.toString() +
 | 
						
						
						
							|  |  |           "-" +
 | 
						
						
						
							|  |  |           dateTime.month.toString() +
 | 
						
						
						
							|  |  |           "-" +
 | 
						
						
						
							|  |  |           dateTime.day.toString() +
 | 
						
						
						
							|  |  |           " " +
 | 
						
						
						
							|  |  |           dateTime.hour.toString() +
 | 
						
						
						
							|  |  |           ":" +
 | 
						
						
						
							|  |  |           dateTime.minute.toString() +
 | 
						
						
						
							|  |  |           ":" +
 | 
						
						
						
							|  |  |           dateTime.second.toString();
 | 
						
						
						
							|  |  |     else
 | 
						
						
						
							|  |  |       return "";
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String getFormattedDate(DateTime dateTime, String formattedString) {
 | 
						
						
						
							|  |  |     return DateFormat(formattedString, "en_US").format(dateTime);
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |   static String convertISODateToJsonDate(String isoDate) {
 | 
						
						
						
							|  |  |     return "/Date(" + DateFormat('mm-dd-yyy', "en_US").parse(isoDate).millisecondsSinceEpoch.toString() + ")/";
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  | // static String getDay(DayOfWeek dayOfWeek) {
 | 
						
						
						
							|  |  | //   switch (dayOfWeek) {
 | 
						
						
						
							|  |  | //     case DayOfWeek.Monday:
 | 
						
						
						
							|  |  | //       return "Monday";
 | 
						
						
						
							|  |  | //       break;
 | 
						
						
						
							|  |  | //     case DayOfWeek.Tuesday:
 | 
						
						
						
							|  |  | //       return "Tuesday";
 | 
						
						
						
							|  |  | //       break;
 | 
						
						
						
							|  |  | //     case DayOfWeek.Wednesday:
 | 
						
						
						
							|  |  | //       return "Wednesday";
 | 
						
						
						
							|  |  | //       break;
 | 
						
						
						
							|  |  | //     case DayOfWeek.Thursday:
 | 
						
						
						
							|  |  | //       return "Thursday";
 | 
						
						
						
							|  |  | //       break;
 | 
						
						
						
							|  |  | //     case DayOfWeek.Friday:
 | 
						
						
						
							|  |  | //       return "Friday";
 | 
						
						
						
							|  |  | //       break;
 | 
						
						
						
							|  |  | //     case DayOfWeek.Saturday:
 | 
						
						
						
							|  |  | //       return "Saturday";
 | 
						
						
						
							|  |  | //       break;
 | 
						
						
						
							|  |  | //     case DayOfWeek.Sunday:
 | 
						
						
						
							|  |  | //       return "Sunday";
 | 
						
						
						
							|  |  | //       break;
 | 
						
						
						
							|  |  | //   }
 | 
						
						
						
							|  |  | //   return "";
 | 
						
						
						
							|  |  | // }
 | 
						
						
						
							|  |  |   static String replaceArabicNumber(String input) {
 | 
						
						
						
							|  |  |     const english = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
 | 
						
						
						
							|  |  |     const arabic = ['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'];
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     for (int i = 0; i < english.length; i++) {
 | 
						
						
						
							|  |  |       input = input.replaceAll(arabic[i], english[i]);
 | 
						
						
						
							|  |  |     }
 | 
						
						
						
							|  |  | 
 | 
						
						
						
							|  |  |     return input;
 | 
						
						
						
							|  |  |   }
 | 
						
						
						
							|  |  | }
 |