创建24小时时间戳的功能? C#

时间:2011-08-30 09:29:04

标签: c# datetime

我有数据库,其中数据存储在时间戳条目中,即键。

我需要一个可以将DateTime.Now这样的日期转换为时间戳间隔的函数,例如,今天为8月30日00:00:00h到8月30日23:59:59h。

我怎么能写这个功能?

我想要的是做

之类的事情

从时间戳介于a和b之间的表中选择所有内容(这些和b值代表一天的初始和终止时间戳。)

我没有创建数据库,我无法修改它,我只能查询它。

6 个答案:

答案 0 :(得分:0)

也许DateTime.Now.TimeOfDay.Ticks正是您所寻找的。

答案 1 :(得分:0)

很难说出你想要的东西,但这是一种获得间隔的方法:

var start = DateTime.Today;
var end = start.AddDays(1).AddSeconds(-1);

由于您没有提供有关表格布局的足够详细信息,因此很难回答如何将值存储在数据库中。

答案 2 :(得分:0)

这将返回一个表示您可能想要的间隔的元组:

Tuple<DateTime,DateTime> GetDateInterval(DateTime datetime) {
    var start = datetime.Date;
    var end = start.AddDays(1).AddTicks(-1);
    return new Tuple<DateTime, DateTime>(start, end);
}

用法:

var interval = GetDateInterval(DateTime.Now);
Console.WriteLine(interval.Item1);
Console.WriteLine(interval.Item2);

输出:

30.08.2011 0:00:00
30.08.2011 23:59:59

答案 3 :(得分:0)

我猜你可能会尝试将结构用作TimeInterval:

public struct TimeInterval
{
    private readonly DateTime _startTime;
    private readonly DateTime _endTime;

    public DateTime StartTime { get { return _startTime; } }
    public DateTime EndTime { get { return _endTime; } }

    public TimeInterval(DateTime now)
    {
        _startTime = now.Date;
        _endTime = now.Date.AddDays(1).AddTicks(-1);
    }
}

你可以叫它:

TimeInterval day = new TimeInterval(DateTime.Now); 

答案 4 :(得分:0)

如果您有一天的范围,您可以计算当天的刻度:

// ----------------------------------------------------------------------
public long GetTicksOfDay( DateTime moment )
{
  return moment.Subtract( moment.Date ).Ticks;
} // GetTicksOfDay

答案 5 :(得分:0)

我认为您需要的是TimeSpan

你可以从另一个中减去一个DateTime,结果将是差异的TimeSpan。