【问题标题】:CLARION Date Conversion C# + DATE ADD/SUBTRACTCLARION 日期转换 C# + 日期加/减
【发布时间】:2012-05-17 16:28:48
【问题描述】:

*(这是针对 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# 中进行这种转换?有人可以告诉我这是基于什么标准,还是仅仅是随机转换。提前致谢。

【问题讨论】:

  • 您是否尝试查看 2012 年 5 月 18 日是否生成 77208 或 2012 年 5 月 16 日是否生成 77206?
  • @Josh 是的,我就是这样算出那一点 sql ...5/18 = 77208 等等 ...
  • 为遇到此问题的未来人员重命名

标签: c# tsql clarion


【解决方案1】:
//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);

【讨论】:

  • 我更喜欢你的 - 删除了我的
【解决方案2】:

这似乎是Clarion Date

自 1800 年 12 月 28 日以来经过的天数

据称,Display Clarion Dates In Excel 只需要

从值中减去 36161 并将其格式化为日期

【讨论】:

  • Good Call Josh,链接也很棒
【解决方案3】:

如果是线性公式,应该可以计算出y=mx+b形式的公式。您至少需要两个数据点。

【讨论】:

    【解决方案4】:

    这是我用来将 Clarion Date 转换为 Julian Date 的 vb.net 代码:

     Dim ldblDaysToSubtract As Double = 36161.0
    
     mclsRevEmployeeRecd.BirthDate(istrBirthDate:=(CDbl(E1Row.Item("BIRTH_DT")) - ldblDaysToSubtract).ToString)
    
     mstrBirthDate = Format(CDate(Date.FromOADate(CDbl(istrBirthDate)).ToString), "MM/dd/yyyy")
    

    【讨论】:

      猜你喜欢
      • 2017-01-06
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多