c# - CLARION 日期转换 C# + DATE ADD/SUBTRACT

标签 c# tsql clarion

*(这是针对 ISV 数据库的,所以我对此进行了逆向工程,无法更改)...

如何在 C# 中进行以下日期到 int(visa/versa)的转换 ...

所以说日期是:

5/17/2012

它被转换为 int

77207

在数据库中。

起初我以为这是儒略日期,但事实并非如此。我在玩 Julian Date Question 的方法,但这不匹配。

   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

我一直在使用这个 SQL 来进行转换:

SELECT Convert(date, CONVERT(CHAR,DATEADD(D, 77207, '1800-12-28'),101))

而且看起来是准确的。我怎么能在 C# 中进行这种转换?有人可以告诉我这是基于什么标准,还是只是随机转换。提前致谢。

最佳答案

//TO int
var date = new DateTime(1800,12,28,0,0,0);            
var daysSince = (DateTime.Now-date).Days;

//FROM int
var date = new DateTime(1800, 12, 28, 0, 0, 0);
var theDate = date.AddDays(77207);

关于c# - CLARION 日期转换 C# + DATE ADD/SUBTRACT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10639677/

相关文章:

c# - 用于将具有非空值的多个属性收集到集合中的简洁 C# 代码?

c# - 调试和发布版本中的静态字段初始化

c# - 在 2 个列表中查找重叠日期并返回重叠时间段

sql - 在 SQL 中加入以从两个表中检索数据

sql-server - 在 SQL Server 2012 中构建日期时间

sql-server - 使用存储过程将文件插入到 SQL Server,无需前端

wcf - 垃圾回收后 WCF 中 COM 对象的访问冲突

c# - 无法为基本属性翻译 LINQ 表达式

mysql - 在 2 种不同类型的数据库之间共享 1 个表

clarion - 访问和修改 clarion .dat 文件