Tengo dos fechas. Se ingresa una fecha y la otra es DateTime.Now
. Los tengo en formato mm/dd/yyyy
, incluso puede ser formato m/d/aa también. Ambas fechas son nulables, es decir, datatype es DateTime?
, ya que puedo pasar nulo también como entrada. Ahora quiero comparar las dos fechas solo con el formato mm/dd/yyyy
o m/d/yy
.Cómo comparar las fechas en C#
Respuesta
Si tiene sus fechas en las variables DateTime, no tienen tienen un formato.
Puede usar la propiedad Date
para devolver un valor DateTime con la porción de tiempo configurada a la medianoche. Por lo tanto, si usted tiene:
DateTime dt1 = DateTime.Parse("07/12/2011");
DateTime dt2 = DateTime.Now;
if(dt1.Date > dt2.Date)
{
//It's a later date
}
else
{
//It's an earlier or equal date
}
En primer lugar, entender que DateTime
objetos no están formateados. Simplemente almacenan el año, mes, día, hora, minuto, segundo, etc. como un valor numérico y el formato se produce cuando desea representarlo como una cadena de alguna manera. Puede comparar objetos DateTime
sin formatearlos.
Para comparar una fecha de entrada con DateTime.Now
, es necesario analizar en primer lugar la entrada en una fecha y luego comparar sólo las partes Año/Mes/Día:
DateTime inputDate;
if(!DateTime.TryParse(inputString, out inputDate))
throw new ArgumentException("Input string not in the correct format.");
if(inputDate.Date == DateTime.Now.Date) {
// Same date!
}
Si tiene fecha en DateTime
variable de entonces su un objeto DateTime
y no contiene ningún formato. La fecha formateada se expresa como string
cuando llama al método DateTime.ToString
y proporciona el formato en él.
Digamos que tiene dos DateTime
variable, se puede utilizar el método de comparación para comparación,
DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
DateTime date2 = new DateTime(2009, 8, 2, 0, 0, 0);
int result = DateTime.Compare(date1, date2);
string relationship;
if (result < 0)
relationship = "is earlier than";
else if (result == 0)
relationship = "is the same time as";
else
relationship = "is later than";
fragmento de código tomado de msdn.
- 1. ¿Comparar las fechas en DataView.RowFilter?
- 2. Cómo comparar las fechas en hibernación
- 3. ¿Cómo comparar las fechas en LINQ?
- 4. Comparar las fechas con Parse.com
- 5. Doctrina 1,2 cómo comparar las fechas
- 6. ¿Cómo comparar fechas en Java?
- 7. Cómo comparar dos fechas
- 8. Cómo comparar fechas en Django
- 9. Comparar fechas en MySQL
- 10. Comparar dos fechas en Java
- 11. Comparar dos fechas en JS
- 12. ¿Cómo comparar las banderas en C#?
- 13. ¿Se pueden comparar las fechas almacenadas como cadena/texto directamente?
- 14. ¿Hay alguna manera de comparar fechas "cadenas" en C# sin convertir las cadenas?
- 15. Cómo comparar fechas en xpath para seleccionar nodos
- 16. ¿Cómo puedo comparar dos fechas en vbscript/ASP?
- 17. MVC validación personalizada: comparar dos fechas
- 18. ¿Cómo comparar DateTime en C#?
- 19. ¿Cómo se pueden comparar dos fechas (solo fechas, no tiempo) en cacao?
- 20. Eliminar las fechas contenidas en otras fechas?
- 21. Comparar dos fechas Google apps script
- 22. ¿Debo usar Calendar.compareTo() para comparar fechas?
- 23. C# - Mostrar las diferencias al comparar cadenas
- 24. ¿Cómo puedo comparar dos fechas, devolver un número de días
- 25. ¿Cuál es la mejor manera de comparar las fechas en Perl?
- 26. ¿Cómo se comparan las fechas en Perl?
- 27. ¿Cómo puedo ordenar las fechas en Perl?
- 28. ¿Cómo se analizan las fechas en GWT?
- 29. ¿Cómo puedo validar las fechas en Perl?
- 30. ¿Cómo formato las fechas en Perl?
Mejor uso 'DateTime.Today' que' DateTime.Now.Date' si no necesita horas, minutos, etc. –
@Piotr - buen punto - a menos que también necesiten acceder a horas/minutos/segundos como otra parte de la obra. –
@Damien_The_Unbeliever ¿Funcionará esto para cualquier formato de fecha? ¿Qué pasa con 'aaaa/MM/dd'? – Arbaaz