import 'package:fikoyt_ui/services/fikoyt_core.service.dart'; import 'package:fikoyt_ui/ui/dialogs/fiko_dialog_ayarlari.dart'; import 'package:flutter/material.dart'; import 'package:intl/date_symbol_data_local.dart'; import 'package:intl/intl.dart'; extension FikoDateTime on DateTime { String? string(String pattern) { try { return DateFormat(pattern).format(this); } catch (e) { return null; } } String formatla(String format) { initializeDateFormatting(); DateFormat dateFormat = DateFormat(format, "tr_tr"); return dateFormat.format(this); } DateTime? formattan(String format, String tarih) { DateFormat dateFormat = DateFormat(format, "tr_tr"); return dateFormat.tryParse(tarih); } String farkToString(DateTime? tarih) { tarih = tarih ?? DateTime.now(); return toIso8601String(); } DateTime ayinIlkGunu() { return DateTime(year, month, 1, 0, 0, 0, 0, 0); } DateTime ayinSonGunu() { // final date = month < 12 ? DateTime.utc(year, month + 1, 1, 23, 59, 59, 99999, 99999) : DateTime(year + 1, 1, 1, 23, 59, 59, 99999, 99999); return DateTime(year, month + 1, 0); } DateTime yilinIlkGunu() { return DateTime(year, 1, 1, 0, 0, 0, 0, 0); } DateTime yilinSonGunu() { // final date = month < 12 ? DateTime.utc(year, month + 1, 1, 23, 59, 59, 99999, 99999) : DateTime(year + 1, 1, 1, 23, 59, 59, 99999, 99999); return DateTime(year, 12, 31, 23, 59, 59, 59, 0); } DateTime ilkSaatler() { return DateTime(year, month, day, 0, 0, 0, 0, 0); } DateTime sonSaatler() { // final date = month < 12 ? DateTime.utc(year, month + 1, 1, 23, 59, 59, 99999, 99999) : DateTime(year + 1, 1, 1, 23, 59, 59, 99999, 99999); return DateTime(year, month, day, 23, 59, 59, 59, 0); } bool isAfterOrEqualTo(DateTime dateTime) { final date = this; final isAtSameMomentAs = dateTime.isAtSameMomentAs(date); return isAtSameMomentAs | date.isAfter(dateTime); } bool isBeforeOrEqualTo(DateTime dateTime) { final date = this; final isAtSameMomentAs = dateTime.isAtSameMomentAs(date); return isAtSameMomentAs | date.isBefore(dateTime); } bool? miArasinda( DateTime fromDateTime, DateTime toDateTime, ) { final date = this; final isAfter = date.isAfterOrEqualTo(fromDateTime); final isBefore = date.isBeforeOrEqualTo(toDateTime); return isAfter && isBefore; } TimeOfDay gununSaati() { TimeOfDay time = TimeOfDay(hour: hour, minute: minute); return time; } DateTime ayarlaGununSaati(TimeOfDay? saat) { if (saat == null) this; TimeOfDay time = TimeOfDay(hour: saat!.hour, minute: saat.minute); DateTime currentDateTime = DateTime(year, month, day, time.hour, time.minute); return currentDateTime; } ayarlaTarih(DateTime tarih) { return DateTime(tarih.year, tarih.month, tarih.day, hour, minute, second, millisecond, microsecond); } Future saatSec(BuildContext context, {TimeOfDay? gecerliSaat}) async { gecerliSaat ??= TimeOfDay(hour: hour, minute: minute); TimeOfDay? value = await showTimePicker(context: context, initialTime: gecerliSaat); if (value == null) return null; DateTime rslt = DateTime(year, month, day, value.hour, value.minute, 0, 0, 0); return rslt; } Future tarihSec( BuildContext context, { DateTime? gecerliTarihSaat, DateTime? varsayilanTarihSaat, FikoDialogAyarlari? ayarlar, }) async { gecerliTarihSaat ??= DateTime(year, month, day, hour, minute, second, millisecond, microsecond); DateTime value = await FikoYTCoreService.tarihSec( context, varsayilanTarih: gecerliTarihSaat, ayarlar: ayarlar, ) ?? DateTime.now(); DateTime rslt = DateTime(value.year, value.month, value.day, hour, minute, second, millisecond, microsecond); return rslt; } }