C# ile Doğum Tarihi Parçalama

08.03.2022 / Eğitim / Genel

C# ile kodlama yaparken kullanıcılardan alınan doğum tarihi bilgisini standart bir formatta kaydetmek istiyorsak önce parçalamamız gerekir.

C# ile Doğum Tarihi Parçalama

Üye olmak isteyen kullanıcılar doğum tarihlerini girerken farklı formatlarda girebilir. Kimi araya nokta (.) koyarken kimi de virgül (,) ya da tire (-) koyabilir.

Verilerin veri tabanında tek formatta olması ilerleyen zamanlarda yapacağınız işlemlerde işini kolaylaştıracaktır. Bu sebepten dolayı doğum tarihi gibi farklı girişlerin yapılacağı içeriklerde “Replace” ile düzenleme yapmamız gerekecek. Tabi öncelikle arada kullanılan işareti de bilmemiz gerekiyor.

string dTarCount = txtGun.Text.Length.ToString();

Yukarıdaki kod ile girilen tarih alanının kaç karakter olduğunu öğreniyoruz. Bu sayede gün ve ay bilgisinde “01” ile “1” yazımı olup olmadığını kontrol edebiliriz. Gün ve aylarda başına “0” ekleme işlemini bu sayede yapacağız.

string dTar = txtGun.Text.Trim();

Yukarıdaki satır ile tarih verisinin girildiği kutucuktaki verileri “Trim” kullanarak sağındaki ve solundaki boşlukları silip alıyoruz.

string sonKarakter = dTar.Substring(dTar.Length - 5);

string isaret = sonKarakter.Substring(0, 1);

Yukarıdaki satır ise sondan 5 karakteri bize getirecek. Bu sayede doğum tarihindeki yıl bilgisinden önce kullanılan işareti öğrenmiş olacağız. İlk önce sondan beş karakteri alıp ardından da elde ettiğimiz verinin ilk karakterini alıyoruz. Bu bize kullanılan işareti verecektir.

Kod bloğumuzun son hali aşağıda yer almaktadır. İşaretimizi belirledikten sonra bir “IF” sorgusu yapıyor. Eğer işaretimiz nokta (.) değil ise “Replace” formülünü kullanarak kullanıcıların giriş yaptığı doğum tarihi verisini noktalı (.) tarih olarak düzeltiyoruz.

Ardından gerçekleştirdiğimiz bir başka “IF” sorgusunda 10 karakterlik bir tarih verişi girişi olursa “Gün – Ay – Yıl” olarak parçalama yapıyor. Aksi halde 8 karakterlik bir doğum tarihi verisi girilirse “Gün ve Ay” bilgisinin başına sıfır (0) ekliyoruz. Yıl bilgisi zaten 4 karakterlik girilecektir.

İlgili sorgu içerisinde parçalamaları da gerçekleştirdikten sonra değişkenler aracılığı ile verilerimizi alıyoruz. Dilerseniz bu şekilde veri tabanına yazdırabilirsiniz.

        string dTarCount = txtGun.Text.Length.ToString();

        string dTar = txtGun.Text.Trim();

        string dGun = "";

        string dAy = "";

        string dYil = "";

        string sonKarakter = dTar.Substring(dTar.Length - 5);

        string isaret = sonKarakter.Substring(0, 1);

        if (isaret != ".")

        {

            dTar = dTar.Replace(isaret, ".");

        }

 

        if (dTarCount.ToString() == "10")

        {

            string[] parcalar = dTar.Split('.');

            dGun = parcalar[0];

            dAy = parcalar[1];

            dYil = parcalar[2];

        }

        else if (dTarCount.ToString() == "8")

        {

            string[] parcalar = dTar.Split('.');

            dGun = "0" + parcalar[0];

            dAy = "0" + parcalar[1];

            dYil = parcalar[2];

        }