* (Esto es para la base de datos de ISV, así que estoy tipo de la ingeniería inversa esto y no puedo cambiar) ...CLARION Fecha de Conversión C# + FECHA/menos
¿Cómo puedo hacer la siguiente fecha a int (Visa/versa) la conversión en C# ...
lo tanto, decir que la fecha es:
5/17/2012
que se convierte a int
77207
en la base de datos.
Al principio pensé que esta era una fecha juliana, pero no parece ser el caso. Estaba bromeando con el método de Julian Date Question, pero esto no coincide.
var date = ConvertToJulian(Convert.ToDateTime("5/17/2012"));
Console.WriteLine(date);
public static long ConvertToJulian(DateTime Date)
{
int Month = Date.Month;
int Day = Date.Day;
int Year = Date.Year;
if (Month < 3)
{
Month = Month + 12;
Year = Year - 1;
}
long JulianDay = Day + (153 * Month - 457)
/5 + 365 * Year + (Year/4) -
(Year/100) + (Year/400) + 1721119;
return JulianDay;
}
Outputs 2456055 //Should be 77207
He estado usando este SQL para hacer la conversión:
SELECT Convert(date, CONVERT(CHAR,DATEADD(D, 77207, '1800-12-28'),101))
y parece que es exacta. ¿Cómo podría hacer esta conversión en C#? ¿Y alguien puede edificarme sobre en qué estándar se basa o es simplemente una conversión aleatoria? Gracias por adelantado.
¿Has probado para ver si genera 5/18/2012 77208 o si 5/16/2012 genera 77206? – Josh
@Josh Sí, así es como me di cuenta de ese poco de sql ... 5/18 = 77208 etc ... –
Cambiar el nombre para el futuro Las personas con este problema –