Önceki uygulamada bir başlangıç tarihi ile bugün arasında nasıl rastgele bir tarih üretebileceğimize dair bir çözüm geliştirmiştik (bkz C# ile Rastgele Tarih Üretmek). Bu yazıda ise alternatif bir algoritma ile problemi daha spesifik bir hale getirelim ve iki tarih arasında rastgele bir tarih üretelim.
İki adet DateTime veri tipinde değer tanımlayalım ve bu iki tarih arasında rastgele bir tarih üretebilmek için iki tarih arasındaki gün farkını bulalım. Sonra da 1 ile aradaki gün farkı arasında rastgele bir değer alan bir Random sınıfı nesnesi ile rastgele bir tamsayı üreterek üretilen sayıyı son tarihten çıkartalım.
Aşağıdaki örnekte iki tarih arasında rastgele 10 adet tarih üreten bir C# programını görebilirsiniz.
Random random = new Random();
DateTime baslangic = new DateTime(1900, 1, 1);
DateTime bitis = new DateTime(2000, 1, 1);
int maxGun = (DateTime.Today - baslangic).Days;
for (int i=0; i<10; i++)
{
DateTime rastgeleTarih = bitis.AddDays(- 1 * random.Next(maxGun));
System.Console.WriteLine(rastgeleTarih.ToShortDateString());
}
Önceki benzer içerikli yazılarımdan bazıları için;
bkz: C# ile string'in karakterlerini rastgele değiştirmek ve sıralamak
bkz: C# ile rastgele tek sayı üretme uygulaması
bkz: C# ile rastgele yazı tura atma uygulaması
bkz: C# ile rastgele zar atma uygulaması
bkz: Visual Studio Code'da foreach döngüsü kısayolu
bkz: C# List içinde arama yapmak