none
sayı arasındaki değerler RRS feed

  • Soru

  • merhaba,öncelikle yapmak istediğim verilan 2 tarih arasındaki farkı bulup bu fark arasındaki değerleri listelemek.örnek  : araç kiralama 07-03-2016 15-03-2016 tarihleri arasın 8 günlük kiralama gün sayısı,fiyat listelerken 01-08 Gün arası fiyatlar,nasıl bir yol izlemeliyim ki  8 gün içindeki fiyatları listeleyeyim.
    7 Mart 2016 Pazartesi 13:31

Yanıtlar

  • Ne sordugun anlasilmiyor, anlamadan yaziyorum yine :(

    void Main()
    {
    var baslangic = new DateTime(2016,3,7);
    var bitis = new DateTime(2016,3,15);
    var gunSayisi = (bitis - baslangic).TotalDays + 1;
    
      var fiyatListesi = new List<Fiyat> {
        new Fiyat { Min=1, Max=3, Tutar=14},
        new Fiyat { Min=4, Max=7, Tutar=16},
        new Fiyat { Min=8, Max=11, Tutar=18},
      };
    
     var fiyat = from g in Enumerable.Range(1, (int)gunSayisi)
                  let miktar = fiyatListesi.Single(l => g >= l.Min && g <= l.Max).Tutar
                  select new {g, miktar};
     
    }
    
    public class Fiyat
    { 
      public int Min { get; set; }
      public int Max { get; set; }
      public decimal Tutar { get; set; }
    }
    

    7 Mart 2016 Pazartesi 14:14

Tüm Yanıtlar

  • Oncelikle, 07-03-2016 15-03-2016 tarihleri arasindaki fark 8 degil 9 gun, daha dogrusu olaya nasil baktigina gore degisir, 7'si ve 15'i dahil ise 9.

     

    var gunSayisi = (new DateTime(2016,3,15) - new DateTime(2016,3,7)).TotalDays + 1;

    Sorunun geri kalani ise pek anlasilmiyor. Her gunu ve tarihi listeleyen bir kod mu? Oyle ise:

    var baslangic = new DateTime(2016,3,7);
    var bitis = new DateTime(2016,3,15);
    var gunSayisi = (bitis - baslangic).TotalDays + 1;
    
    var gunler = Enumerable.Range(0, (int)gunSayisi)
       .Select(e => new {Gun=e+1, Tarih=baslangic.AddDays(e)});
    

    7 Mart 2016 Pazartesi 13:43
  • 8 9 takılmıyorum varsayım olarak yazdım. yapmak istediğim şu

    01-03 Gün Arası14 TL
    04-07 Gün Arası16 TL

    tarih ne seçerse seçsin eğer başlangıç ile bitiş tarihi arasındaki gün yukarıdaki belirttiğim değer için var ise işte tam olarak burayı kavrayamıyorum

    7 Mart 2016 Pazartesi 13:49
  • Ne sordugun anlasilmiyor, anlamadan yaziyorum yine :(

    void Main()
    {
    var baslangic = new DateTime(2016,3,7);
    var bitis = new DateTime(2016,3,15);
    var gunSayisi = (bitis - baslangic).TotalDays + 1;
    
      var fiyatListesi = new List<Fiyat> {
        new Fiyat { Min=1, Max=3, Tutar=14},
        new Fiyat { Min=4, Max=7, Tutar=16},
        new Fiyat { Min=8, Max=11, Tutar=18},
      };
    
     var fiyat = from g in Enumerable.Range(1, (int)gunSayisi)
                  let miktar = fiyatListesi.Single(l => g >= l.Min && g <= l.Max).Tutar
                  select new {g, miktar};
     
    }
    
    public class Fiyat
    { 
      public int Min { get; set; }
      public int Max { get; set; }
      public decimal Tutar { get; set; }
    }
    

    7 Mart 2016 Pazartesi 14:14
  • Öncelikle cevaplarınız için teşekkürler.Ben olayı anlatayım,araç kiralamak için gittiniz ve aracı 07-03-2016 tarihinde teslim alacağınızı ve 15-03-2016 tarihinde iade edeceğinizi belirttiniz,yani siz aracı 9 günlük için kiralamış oldunuz,burada rent a car firmaların fiyat politikası var mesela 1 ila 9 gün arası 40tl , 9 ila 28 gün arası 45tl gibi.

    buraada yapmak istediğim iki tarih seçildiğinde o tarih ler arasındaki fiyatları getirmek yani 1 ila 9 gün arasındaki fiyatı getirmek gibi çünkü aracı 9 günlük kiraladı gibi.bilmem anlata bildim mi


    7 Mart 2016 Pazartesi 14:20
  • Iyi de yukaridaki koda bakmadiniz mi?
    7 Mart 2016 Pazartesi 14:35
  • hocam ben yazarken sanırım yazmışsınız :) ilginiz için teşekkürler
    7 Mart 2016 Pazartesi 14:37