Image Load

Hello world, 

Menghitung selisih tanggal biasanya kita terapkan pada aplikasi yang membutuhkan hitungan khusus untuk menghitung jarak antara tanggal awal ke tanggal akhir yang biasanya digunakan untuk menghitung usia, durasi atau status expired dll. Biasanya untuk menghitung usia kita harus membandingkan antara tanggal lahir dan tanggal hari ini. Begitu juga dengan status expired. Berbeda dengan durasi yang akan membandingkan tanggal dengan tanggal yang lainnya. Untuk lebih detail perhatikan contoh berikut.

Tahap 1. 

Sediakan 2 tanggal yang akan dibandingkan.

DateTime tanggalMulai = DateTime(2021, 03, 02); 
DateTime tanggalAkhir = DateTime.now(); 

Pada contoh di atas kita akan membandingkan tanggal 2021-03-02 dan tanggal hari ini. Atau bisa juga kita gunakan tanggal seperti berikut.

DateTime tanggalMulai = DateTime.parse('2021-03-01');
DateTime tanggalAkhir = DateTime.parse('2021-03-05');


Tahap 2.

Buat fungsi untuk menghitung selisih seperti berikut.

var selisih;
hitungselisih() {
    final datestart = DateTime(tanggalMulai.year, tanggalMulai.month, tanggalMulai.day);
    final dateend = DateTime(tanggalAkhir.year, tanggalAkhir.month, tanggalAkhir.day);
    setState(() {
      selisih = dateend.difference(datestart).inDays;
    });
}


Tahap 3.

Buat pada halaman dengan bentuk seperti berikut.

import 'package:flutter/material.dart';

class Selisih extends StatefulWidget {
  @override
  _SelisihState createState() => _SelisihState();
}

class _SelisihState extends State {
  DateTime tanggalAkhir = DateTime.parse('2021-03-05');
  DateTime tanggalMulai = DateTime(2021, 03, 02);
  var selisih;
  hitungselisih() {
    final datestart =
        DateTime(tanggalMulai.year, tanggalMulai.month, tanggalMulai.day);
    final dateend =
        DateTime(tanggalAkhir.year, tanggalAkhir.month, tanggalAkhir.day);
    setState(() {
      selisih = dateend.difference(datestart).inDays;
    });
  }

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    hitungselisih();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Halaman Datepicker"),
      ),
      body: Container(
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Center(
              child: Text(
                selisih.toString(),
                style: TextStyle(fontSize: 20.0),
              ),
            ),
          ],
        ),
      ),
    );
  }
}


Selamat mencoba :)