【问题标题】:Converting from old VB to .NET C# and what does 0xe10L means?从旧 VB 转换为 .NET C#,0xe10L 是什么意思?
【发布时间】:2013-08-23 02:59:40
【问题描述】:

我正在从旧的 VB 转换为 .NET C#,并在 C# 代码中得到以下内容。以下几行是什么意思?我知道这与日期和时间差异有关,但我无法做出确切的比较。请帮帮我。

DateTime now = DateTime.Now;

int num = (int)((0xe10L - DateAndTime.DateDiff(DateInterval.Second, Client.last_use_date, now, FirstDayOfWeek.Sunday, FirstWeekOfYear.Jan1)) + 30L);

0xe10L 是什么意思,它与什么比较? 30L呢?

if (DateAndTime.DateDiff(DateInterval.Minute, current.last_use_date, now, FirstDayOfWeek.Sunday, FirstWeekOfYear.Jan1) >= 0x3dL)

0x3dL 是什么意思?

【问题讨论】:

    标签: c# vb.net datetime vb6-migration vb.net-to-c#


    【解决方案1】:

    分为两部分:

    • 0x3D 是整数的十六进制值(在本例中为十进制 61)
    • “L”表示长(即 64 位,而不是 32 位)。

    显式 long 的原因是因为 DateDiff 返回一个 long。

    【讨论】:

    • 谢谢。这很有帮助。早该想到这个!我对我得到这些答案的速度印象深刻。
    • 如果其中一个是“答案”,您应该将其标记为答案 - 当您选择答案时,人们会更愿意帮助回答问题。
    【解决方案2】:

    它是十进制值的十六进制表示,例如 3600。(0x => hex E10 = 3600) 是一小时的秒数。

    0x3D 表示 61,因此第二个等式检查 > 1 小时(> 61 分钟)。

    【讨论】:

      猜你喜欢
      • 2015-12-31
      • 1970-01-01
      • 1970-01-01
      • 2011-01-19
      • 2019-09-12
      • 2021-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多