一年中的最短日期

时间:2009-11-09 10:23:51

标签: asp.net

我有一个文本框,我必须在该texbox中显示当前年份的最短日期

这意味着: 假设我考虑选择current_time(09/11/2009) 那么(01/01/2009)应该在文本框中显示

等待您的回复

4 个答案:

答案 0 :(得分:10)

您只想构建同一年的新DateTime,并将其他参数设置为一(第一天和第一天)。

var currentDateTime = DateTime.Now; // or whatever else
var firstDayOfYear = new DateTime(currentDateTime.Year, 1, 1);

答案 1 :(得分:1)

修改 正如Noldorin指出的那样,最简单,最简洁的解决方案是:

var firstDayOfYear = new DateTime(DateTime.Today.Year, 1, 1);

我的回答:

这应该这样做。

var now = DateTime.Now
var firstDayOfYear = now.Subtract(TimeSpan.FromDays(now.DayOfYear - 1)).Date

编辑: 实际上这会更清洁一点:

var today = DateTime.Today
var firstDayOfYear = today.Subtract(TimeSpan.FromDays(today.DayOfYear - 1))

答案 2 :(得分:0)

我过去必须解决同样的问题。最后,我决定为DateTime类创建一个Extension Methods类来封装和测试虽然简单的功能。

public static class DateTimeExtensions
{
    public static DateTime GetFirstDayOfYear(this DateTime date)
    {
        return new DateTime(date.Year, 1, 1);
    }
}

现在我需要做的就是获得所需的日期

DateTime selectedDate = DateTime.Today;
DateTime firstDayOfYear = selectedDate.GetFirstDayOfYear();

答案 3 :(得分:-1)

假设您可以从文本框中获取DateTime对象(例如DateTime.Parse(...)),您可以这样做:

DateTime inputDate = DateTime.Parse(textBox.Text);
DateTime outputDate = new DateTime(inputDate.Year, 1, 1);