9 November 2025 Sunday 10:50:47


C# ile İki Tarih Arası Yıl-Ay-Gün Farkını Bulma

C# ile İki Tarih Arası Yıl-Ay-Gün Farkını Bulma

C# ile iki tarih arasındaki yıl, ay ve gün farkını bulmak için de yine TimeSpan sınıfını kullanabilirsiniz. Aşağıdaki örnek kod, iki tarih arasındaki farkı yıl, ay ve gün olarak bulmanıza yardımcı olacaktır.

Örneğimizde formumuza 2 adet dateTimePicker ve 1 adet Button ekliyoruz.

C# Kodları:

using DevExpress.XtraEditors;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DenemeYedekleme
{
    public partial class Tarih : DevExpress.XtraEditors.XtraForm
    {
        public Tarih()
        {
            InitializeComponent();
        }

        private void btnTarihFarki_Click(object sender, EventArgs e)
        {
            DateTime startDate = dateTimePicker1.Value;
            DateTime endDate = dateTimePicker2.Value;

            int years = endDate.Year - startDate.Year;
            int months = endDate.Month - startDate.Month;
            int days = endDate.Day - startDate.Day;

            if (days < 0)
            {
                months--;
                days += DateTime.DaysInMonth(startDate.Year, startDate.Month);
            }

            if (months < 0)
            {
                years--;
                months += 12;
            }

            MessageBox.Show(String.Format("Fark: {0} yıl, {1} ay, {2} gün", years, months, days));
        }
    }
}

 

 

 

 

 

 

 

 

 

Yukarıdaki kodda, yine dateTimePickerStartDate ve dateTimePickerEndDate adlı iki tarih seçici kontrolü kullanarak başlangıç ve bitiş tarihlerini alıyoruz. Daha sonra, yıl, ay ve gün farkını hesaplamak için sırasıyla endDate.Year - startDate.YearendDate.Month - startDate.Month ve endDate.Day - startDate.Day işlemlerini yapıyoruz.

Ancak, burada dikkat etmemiz gereken birkaç nokta var. Örneğin, ay farkını hesaplarken, ayın son günü ile başlangıç tarihindeki ay arasındaki farkı doğru hesaplamak için gün sayısını da hesaba katmamız gerekiyor. Bunun için, days değişkeninin 0’dan küçük olması durumunda ay farkını bir azaltıyoruz ve days değişkenine, başlangıç tarihindeki ayın gün sayısını ekliyoruz.

Benzer şekilde, yıl farkını hesaplarken de, ay farkı negatif olduğunda yıl farkını bir azaltıyoruz ve ay farkını 12’ye ekliyoruz.

Son olarak, MessageBox ile kullanıcıya yıl, ay ve gün farkını gösteriyoruz.

Bu şekilde, iki tarih arasındaki farkı yıl, ay ve gün olarak doğru bir şekilde hesaplayabilirsiniz.

img

ibrahim ÖZKAN