personalizar obtener net minutos horas fecha establecer custom control c# winforms datetime

obtener - personalizar datetimepicker c#



Significado de la excepción en la aplicación C#: "¿No es una fecha legal de OleAut"? (6)

Significa que proporcionó una fecha no válida en algún lugar, intentando convertir hacia o desde una fecha de Automatización OLE fuera del rango válido desde el 1 de enero de 4713 aC hasta el 31 de diciembre de 9999 AD. Una posible causa es que podría haberse resbalado porque las Fechas de automatización OLE están representadas como un doble.

Alguien sabe que significa esto. Obteniendo esto en aplicaciones C # winforms:

No es una fecha legal de OleAut


Otros han tenido problemas con esto. Sugiero mirar estos hilos en DotNetNuke y DevShed .


Significa que en algún lugar del programa se intenta convertir hacia o desde una fecha de automatización OLE fuera del rango válido 1-enero-4713 aC hasta el 31 de diciembre de 9999 AD. Es posible que se haya filtrado porque las Fechas de automatización OLE se representan como un doble .

Comience por buscar cualquier uso de los métodos:

DateTime.FromOADate

DateTime.ToOADate


Un OADate se representa como un valor doble cuyo valor es el número de días desde la medianoche del 30 de diciembre de 1899 (valores negativos que representan fechas anteriores).

Esta excepción se produce al intentar convertir un valor que está fuera del rango válido de las fechas de automatización de Ole a / desde un valor .NET DateTime (métodos DateTime.FromOADate y DateTime.ToOADate - que también se utilizan implícitamente para COM Interop).

Creo que es válido para la conversión a OADate, el valor .NET DateTime debe ser estrictamente mayor que 01/01/0100.

Para convertir de OADate a un valor .NET DateTime, el valor doble debe ser estrictamente mayor que -657435 (= 01/01/0100) y estrictamente menor que 2958466.0 (01/01/10000).


He usado:

try { if (folderItem.ModifyDate.Year != 1899) { this.FileModifiedDate = folderItem.ModifyDate.ToShortDateString() + " " + folderItem.ModifyDate.ToLongTimeString(); } } //we need this because it throws an exception if it''s an invalid date... catch (ArgumentException) { }

para lidiar con el mismo problema que estoy teniendo. Arroja la excepción cuando revisamos el año en mi caso. No hacer nada en una fecha no válida es exactamente el comportamiento que quiero, por lo que este truco funciona.


Lo que encontré fue que una columna con un gran row_id ''257381195'' intentaba ser leído por Excel como una Fecha. Lo que terminé haciendo fue alterar los datos de esa columna a una cadena precediendo al row_id con una comilla simple. Esto resolvió mi problema. Espero que esto ayude.