6

I wrote this code. But I want to ignore time, I want to compare only day.

from s in sayac_okumalari
where s.okuma_tarihi == startDate && s.sayac_id == sayac_id
group s by new { date = new DateTime(((DateTime)s.okuma_tarihi).Year, ((DateTime)s.okuma_tarihi).Month, ((DateTime)s.okuma_tarihi).Day, ((DateTime)s.okuma_tarihi).Hour, 1, 1) } into g
select new
{
     okuma_tarihi = g.Key.date,
     T1 = g.Sum(x => x.toplam_kullanim_T1),
     T2 = g.Sum(x => x.toplam_kullanim_T2),
     T3 = g.Sum(x => x.toplam_kullanim_T3)
};

for example:

25.02.1987 == 25.02.1987
abatishchev
  • 98,240
  • 88
  • 296
  • 433
AliRıza Adıyahşi
  • 15,658
  • 24
  • 115
  • 197
  • Possible duplicate of [How to compare only Date without Time in DateTime types in C#?](http://stackoverflow.com/questions/683037/how-to-compare-only-date-without-time-in-datetime-types-in-c) – Veverke Dec 21 '16 at 09:26

5 Answers5

17

use s.okuma_tarihi.Value.Date == startDate.Date. This should allow you to compare only the Date component.

Update From the discussion in comments looks like the user is using NullableType. Hence updated the solution for NullableType.

Ramesh
  • 13,043
  • 3
  • 52
  • 88
8

Use Date property of DateTime. For ex,

var date= DateTime.Now.Date;
L.B
  • 114,136
  • 19
  • 178
  • 224
2

Because you could convert s.okuma_tarihi to DateTime, I think you could do:

var sonuc = from s in sayac_okumalari
        where (DateTime)s.okuma_tarihi.Date == startDate.Date && s.sayac_id == sayac_id
        group s by new { date = new DateTime(((DateTime)s.okuma_tarihi).Year, ((DateTime)s.okuma_tarihi).Month, ((DateTime)s.okuma_tarihi).Day, ((DateTime)s.okuma_tarihi).Hour, 1, 1) } into g
        select new
        {
             okuma_tarihi = g.Key.date,
             T1 = g.Sum(x => x.toplam_kullanim_T1),
             T2 = g.Sum(x => x.toplam_kullanim_T2),
             T3 = g.Sum(x => x.toplam_kullanim_T3)
        };

Hope it helps.

Dan Fat
  • 21
  • 1
0

Try using the Date property on the DateTime Object will be a good a simple solution.

string AdmissionDate = "10/15/2017" // mm/dd/yyyy
string DepartureDate = "10/14/2017" // mm/dd/yyyy

if (Convert.ToDateTime(AdmissionDate).Date > Convert.ToDateTime(DepartureDate).Date)
{
    // Validation: Admission Date can not be greater than Departure Date... 
}
Kervin Guzman
  • 131
  • 1
  • 5
-1

Try this...

        try
        {
         DateTime Date1= DateTime.ParseExact(txtBox1.Text,"dd/MM/yyyy",null);
         DateTime Date2 = DateTime.ParseExact(txtBox2.Text, "dd/MM/yyyy", null);

          if (Date1 > Date2) 
          {
           //........
          }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
Almamun
  • 11
  • 3