2012-06-18 33 views
27

Duplicar posible:
How to compare Dates in C#¿Cómo probar dos dateTimes por ser la misma fecha?

Este código mío:

public static string getLogFileNameForDate(DateTime dt) 
{ 
    if (dt.Equals(DateTime.Now)) 

... falla incluso cuando las dos fechas son las mismas (fecha) dt es debido asignó un valor al inicio (por ejemplo, "18/06/2012 15:19:42"), por lo que las fechas no son exactamente las mismas, aunque el año, el mes y el día son los mismos (valor de DateTime . Ahora puede ser, por ejemplo, "6/18/2012 15:30:13").

Sé que puedo probar de esta manera:

if ((dt.Year.Equals(DateTime.Now.Year) && (dt.Month.Equals(DateTime.Now.Month) && (dt.Day.Equals(DateTime.Now.Day)) 

... pero que parece un poco Jetro * -como

¿Cuál es el método aceptado/preferido (sin doble sentido)?

  • Clampett, no Tull
+1

dt.Date.CompareTo (DateTime.Now.Date) == 0 debería hacer el truco. – dash

+2

Ah, y http://stackoverflow.com/questions/683037/how-to-compare-dates-inc-c-sharp – dash

+0

@dash: parece que necesitas la insignia mítica "Seeing Double" para estos dupes que sigues encontrando . –

Respuesta

76

Trate

if (dt.Date == DateTime.Now.Date) 

tomará solamente la parte de fecha y la marca de tiempo será 12:00:00

+7

Supongo también puedes hacer 'dt.date == DateTime.Today' – Rippo

Cuestiones relacionadas