|  |  |  |  | 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; | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | } |