5.00 / 1 oy

C# ile Rastgele Tarih Üretmek

C# programlama dilinde rassal uygulamalara sayısal çok uygulama yaptık, bügün de tarihsel veriler ile nasıl rastgele değerler üretebileceğimiz ile geceye başlayalım.

DateTime veri tipi için geliştirilmiş ve rastgele tarih üretmeye yarayan hazır bir metod olmadığı için bu problemi çözerken yaratıcılığımızı kullanmakta özgürüz. Dolayısıyla birçok çözüm içinden istediğimiz optimal çözümlerden birisini seçerek rastgele tarihler üretebiliriz.

Olası çözümlerden birisi, üreteceğimiz rastgele veriler için mümkün olan en küçük tarihi baz alarak bu tarih ile bugün arasıdaki süreyi rastgele olarak üretmek ve baz tarihe eklemek olabilir.

Random random = new Random();

DateTime baslangic = new DateTime(1900, 1, 1);
int maxGun = (DateTime.Today - baslangic).Days;           
DateTime rastgeleTarih = baslangic.AddDays(random.Next(maxGun));

Bu işlemi bir döngü içerisinde 10 kere tekrarlayalım ve ürettiğimiz rastgele 10 tarihin neler olduğuna bakalım.

Random random = new Random();
DateTime baslangic = new DateTime(1900, 1, 1);
int maxGun = (DateTime.Today - baslangic).Days;           

for (int i=0; i<10; i++)
{
    DateTime rastgeleTarih = baslangic.AddDays(random.Next(maxGun));
    System.Console.WriteLine(rastgeleTarih.ToShortDateString());
}

Çıktı:

1/7/1952
10/29/1992
4/20/1925
4/10/1984
2/22/1918
4/3/1930
8/23/1994
6/3/1918
3/5/1981
7/17/1922

 

Önceki benzer içerikli yazılarımdan bazıları için;

bkz: C# ile iki tarih arasında kaç gün olduğunu bulmak

bkz: C# ile List'ten rastgele eleman seçmek

bkz: C# ile diziden rastgele eleman seçmek

bkz: C# ile string'in karakterlerini rastgele değiştirmek ve sıralamak

bkz: C# ile rastgele çift sayı üretme uygulaması

bkz: C# ile rastgele yazı tura atma uygulaması

mbologlu

24.04.2021 00:30

Bu soru henüz yanıtlanmamış.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
C# ile Rastgele Tarih Üretmek

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.