有没有更好的方式来修剪一个DateTime到一个特定的precision? [英] Is there a better way to trim a DateTime to a specific precision?

查看:148
本文介绍了有没有更好的方式来修剪一个DateTime到一个特定的precision?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

什么是修剪DateTime对象,以特定的precision最好的方法是什么?举例来说,如果我有一个DateTime与2008-09-29 9时41分43秒的值,但我只希望它是precision是到分钟,是有一个更好的办法做到这一点比这个?

 私有静态的DateTime TrimDateToMinute(日期时间为准)
{
    返回新的日期时间(
        date.Year,
        date.Month,
        date.Day,
        date.Hour,
        date.Minute,
        0);
}
 

我会真正想要的是让它变,这样我可以设置其precision到秒,分钟,小时,或一天。

解决方案

 静态类节目
{
    //使用扩展方法:
    静态日期时间调整(此日期时间日期,长roundTicks)
    {
        返回新的日期时间(date.Ticks  -  date.Ticks%roundTicks);
    }

    //示例用法:
    静态无效的主要(字串[] args)
    {
        Console.WriteLine(DateTime.Now);
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerDay));
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerHour));
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerMillisecond));
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerMinute));
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerSecond));
        到Console.ReadLine();
    }

}
 

What's the best way to trim a DateTime object to a specific precision? For instance, if I have a DateTime with a value of '2008-09-29 09:41:43' and but I only want it's precision to be to the minute, is there are a better way to do it than this?

private static DateTime TrimDateToMinute(DateTime date)
{
    return new DateTime(
        date.Year, 
        date.Month, 
        date.Day, 
        date.Hour, 
        date.Minute, 
        0);
}

What I would really want is to make it variable so that I could set its precision to the second, minute, hour, or day.

解决方案

static class Program
{
    //using extension method:
    static DateTime Trim(this DateTime date, long roundTicks)
    {
        return new DateTime(date.Ticks - date.Ticks % roundTicks);
    }

    //sample usage:
    static void Main(string[] args)
    {
        Console.WriteLine(DateTime.Now);
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerDay));
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerHour));
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerMillisecond));
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerMinute));
        Console.WriteLine(DateTime.Now.Trim(TimeSpan.TicksPerSecond));
        Console.ReadLine();
    }

}

这篇关于有没有更好的方式来修剪一个DateTime到一个特定的precision?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆