【问题标题】:Is there a better way to deconstruct a date?有没有更好的方法来解构日期?
【发布时间】:2011-07-30 08:59:34
【问题描述】:

为了学习最佳实践,我有一个问题。在寻找一周开始日期的方法时,我遇到了这个线程。 “http://stackoverflow.com/questions/38039/how-can-i-get-the-datetime-for-the-start-of-the-week”

问题:我需要 4-3-2011 的格式:有没有比我的代码破解更有效的方法来完成此任务?

DateTime dt = DateTime.Now.StartOfWeek(DayOfWeek.Sunday);
            int ddt = dt.Day;
            int mdt = dt.Month;
            int ydt = dt.Year;
            string sddt = ddt.ToString();
            string smdt = mdt.ToString();
            string sydt = ydt.ToString();
            string fdate = (smdt + "-" + sddt + "-" + sydt);

线程代码:作者讽刺

public static class DateTimeExtensions
    {
        public static DateTime StartOfWeek(this DateTime dt, DayOfWeek startOfWeek)
        {
            int diff = dt.DayOfWeek - startOfWeek;
            if (diff < 0)
            {
                diff += 7;
            }

            return dt.AddDays(-1 * diff).Date;
        }
DateTime dt = DateTime.Now.StartOfWeek(DayOfWeek.Sunday);

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    一种更好的扩展方法,考虑到当前的文化(from the same thread above)

    public static class DateTimeExtensions {
        public static DateTime StartOfWeek(this DateTime date) {
            System.Globalization.CultureInfo culture = System.Threading.Thread.CurrentThread.CurrentCulture;
            DayOfWeek dayOfWeek = culture.DateTimeFormat.FirstDayOfWeek;
            return date.AddDays(dayOfWeek - date.DayOfWeek);
        }
    }
    

    然后调用使用:

    DateTime.Now.StartOfWeek().ToString("M-d-yyyy");
    

    【讨论】:

      【解决方案2】:
      fdate = DateTime.Now.StartOfWeek(DayOfWeek.Sunday).ToString("M-d-yyyy");
      

      查看这里:Standard Date and Time Format StringsDateTimeFormatInfo 获取格式信息。

      【讨论】:

        【解决方案3】:

        更好?不确定。

        第二个代码对我来说更好,那么你当然可以使用

        dt.ToString("d-m-yyyy");
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-09-03
          • 2014-05-14
          • 1970-01-01
          • 2011-03-02
          • 1970-01-01
          • 2013-02-23
          相关资源
          最近更新 更多