Kısa bir giriş sonrası kodlama kısmına devam edelim.
Öncelik olarak bugünün tarihini veren (yıl-ay-gün saat-dakika-saniye) bir metod oluşturalım.
Bugün Bilgisini Veren Metod
public String fnBugun() { String strSonuc = ""; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Calendar calTakvim = Calendar.getInstance(); strSonuc = sdf.format(calTakvim.getTime()); return strSonuc; }
Bugüne ait tarih ve saati veren fonksiyonumuzu hazırladık. Şimdi ise geçmiş bir tarihli değer ile bugünkü tarihin karşılaştırmasını yapalım. Yani aradaki zaman farkını öğrenmeye çalışalım.
Tarih Farkını Veren Metod
public String fnTarih_Gecen_Zamanli(String parTarih) { String strSonuc = "Biraz önce"; try { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date dtmBitis = sdf.parse(fnBugun()); Date dtmBaslangic = sdf.parse(parTarih); long lngFark = dtmBitis.getTime() - dtmBaslangic.getTime(); long lngSaniye = (lngFark / 1000); long lngDakika = (lngFark / (1000 * 60)); long lngSaat = (lngFark / (1000 * 60 * 60)); long lngGun = (lngFark / (1000 * 60 * 60 * 24)); long lngHafta = (lngFark / (1000 * 60 * 60 * 24 * 7)); long lngAy = (lngFark / (1000 * 60 * 60 * 24 * 30)); long lngYil = (lngFark / (1000 * 60 * 60 * 24 * 365)); if (lngSaniye > 0) strSonuc = String.valueOf(lngSaniye) + " saniye önce"; if (lngDakika > 0) strSonuc = String.valueOf(lngDakika) + " dakika önce"; if (lngSaat > 0) strSonuc = String.valueOf(lngSaat) + " saat önce"; if (lngGun > 0) strSonuc = String.valueOf(lngGun) + " gün önce"; if (lngHafta > 0) strSonuc = String.valueOf(lngHafta) + " hafta önce"; if (lngAy > 0) strSonuc = String.valueOf(lngAy) + " ay önce"; if (lngYil > 0) strSonuc = String.valueOf(lngYil) + " yıl önce"; } catch (ParseException hata) { hata.printStackTrace(); } return strSonuc; }
Metodlarımız hazır, şimdi sonuçların görünmesi için tasarım nesnelerini xml içerisinde oluşturalım. Projemize iki adet TextView ekleyelim ve id değerleri ise tvSonuc1 ve tvSonuc2 şeklinde belirleyelim. Metodumuza gönderdiğimiz parametrenin sonucunu bu tvSonuc1 ve tvSonuc2 içerisine yazdırmış olalım.
Örnek Tasarım Önizleme
Örnek
String strBugun = fnBugun(); String strTarih1 = "2020-12-13 14:00:00"; String strFark1 = fnTarih_Gecen_Zamanli(strTarih1); String strSonuc1 = "Önceki Tarih: " + strTarih1 + " \n Bugün: " + strBugun + " \n Sonuç: " + strFark1; TextView tvSonuc1 = (TextView)findViewById(R.id.tvSonuc1); tvSonuc1.setText(strSonuc1); String strTarih2 = "2020-12-20 01:00:00"; String strFark2 = fnTarih_Gecen_Zamanli(strTarih2); String strSonuc2 = "Önceki Tarih: " + strTarih2 + " \n Bugün: " + strBugun + " \n Sonuç: " + strFark2; TextView tvSonuc2 = (TextView)findViewById(R.id.tvSonuc2); tvSonuc2.setText(strSonuc2);
Yaptığımız örneğe ait oluşan sonucun ekran görüntüsünü paylaşalım ve sizlere bol kodlu günler dilerim.