Flutter/Dart iki zaman arasındaki günü hesaplama

Bugün Flutter/Dart üzerinde daha demin otel sistemleri için yazdığım iki zaman dilimi verilen kodda nasıl arasındaki günü bulacağımızı göstereceğim.

Öncelikle fonksiyonu oluşturarak başlayalım.

JavaScript:
int? zamanHesaplama(
  int? ucret,
  DateTime? giris,
  DateTime? cikis,
)

Bu fonksiyon içerisine bir tane int değeri iki tane de timestamp değeri alacaktır.

JavaScript:
if (giris != null && cikis != null)

if değerini kullanarak iki zaman diliminin de boş olmadığından emin olacağız. Yoksa değer "null" gelebilir, bu da fonksiyonumuzu bozacaktır, çünkü fonksiyon sadece int değerini geri dönüş değeri olarak alıyor.

JavaScript:
var base = ucret! * cikis.difference(giris).inDays;

Başlangıçta iki değer vermiştik, giriş ve çıkış diye. Ben bir otel ücreti hesaplama uygulaması yaptığım için giriş günü ile çıkış günü arasındaki gün sayısını bulmaya çalışıyordum. Timestampler ile işlem yapacaksanız, genellikle en son değer üzerinden hesabınızı yapmanız lazım. Bu durumda benim tüm işlemleri "cikis" değeri üzerinden yapmam lazım. "cikis.difference(giris)", herhangi bir Timestamp ile birlikte difference fonksiyonunu çalıştırabilirsiniz. Bu fonksiyonun içerisine eklediğiniz diğer timestamp ile karşılaştırma yapacaktır. Daha sonrasında bu fonksiyona ne üzerinden çalışacağını belirtmemiz gerekiyor. Ben de bu durumda ".inDays" ile birlikte arasındaki gün farkını çıkartmasını istedim.

NOT: Dikkat ederseniz "ucret" değişkeninin sonunda ! işareti var. Bunun sebebi kod kendini çalıştırmadan önce ucret değerinin boş olup olmadığını kontrol ediyor. Eğer boş ise kodu devam ettirmiyor.

JavaScript:
if (base == 0) {
    var anapara = ucret;
    return anapara;
} else {
    var anapara = base;
    return anapara;
}

Burada ise eğer iki zaman dilimi arasındaki gün sayısı sıfır ise direkt anaparayı göndermesini istedik. Yalnız yukarıdaki kod üzerinde ucret değerinin boş olup olmadığını kontrol ettiğimizden burada etmemize gerek yok, bu yüzden ucret değişkenin sonunda ! işareti yok.

TAM KOD:

Kod:
int? gunFarki(
  int? ucret,
  DateTime? giris,
  DateTime? cikis,
  int? servis,
) {
  // her iki zaman dilimi de verilmişse, aradaki günleri hesapla ve ucret değişkeniyle çarp
  if (giris != null && cikis != null) {
    var base = ucret! * cikis.difference(giris).inDays;
    if (base == 0) {
      var anapara = ucret + servis!;
      return anapara;
    } else {
      var anapara = base + servis!;
      return anapara;
    }
  } else {
    var anapara = ucret! + servis!;
    return anapara;
  }
  // CidQu
}
  • Beğen
İfadeler: 566156 ve EMİR37

Yorumlar

JavaScript:
int daysBetween(DateTime from, DateTime to) {
  from = DateTime(from.year, from.month, from.day);
  to = DateTime(to.year, to.month, to.day);
  return (to.difference(from).inHours / 24).round();
}
'from' girişin, 'to' çıkışın olacak. Sana sayı olarak gün çıktını verecek istediğin şekilde.
İstersen de sadece (to.difference(from).inHours / 24).round() işlemi ile biraz oynayıp kodunda kullanabilirsin.
Detaylı bilgiye buradan ulaşabilirsin.
 

Blog girdisi detayları

Ekleyen
CidQu
Okuma süresi
2 dakika okuma
Görüntüleme
791
Yorumlar
1
Son güncelleme
Değerlendirme
5,00 yıldız 1 değerlendirme

Yazılım kategorisindeki diğer girdiler

CidQu adlı kullanıcının diğer girdileri

Bu girdiyi paylaş

Geri
Yukarı