将DateTime.Today转换为int c#

时间:2016-08-31 08:10:30

标签: c# datetime

抱歉对于非常基本的答案,但我正在努力寻找将DateTime.Today转换为int的方法。 这不起作用,但你可以假设我的目标

int CurrentDay = DateTime.Today;

感谢任何帮助。

4 个答案:

答案 0 :(得分:8)

使用Day属性:

int currentDay = DateTime.Today.Day;
  

获取此实例所代表的月份的日期。

您也可以在需要时使用DayOfWeekDayOfYear

答案 1 :(得分:0)

您必须将Today转换为String,删除点并转换为int。

你可以尝试:

int currentday = Convert.ToInt32(DateTime.Today.ToShortDateString().Replace(".", ""));

如果添加时间,可以使用长。

过去曾多次在Stack Overflow上询问过这个问题。 例如,看看这个答案:

Click here

然后,查看此问题/答案中的右栏,了解更多相关问题/答案。

您可以使用关键字

在Stack Overflow(右上角的搜索字段)中进行搜索

[c#]将datetime转换为int

Google搜索也可以解决您的问题。例如,使用关键字

c#将datetime转换为int

我知道这应该是一个评论,但由于我的代表,我不能这样做,抱歉。

答案 2 :(得分:0)

您可以使用此解决方案将dateTime存储为数字,只需要在需要时间组件时将其存储为Int64:

[TestMethod]
public void DateTimeToInt64()
{
   long ticks = DateTime.Today.Ticks;

   DateTime dateTimeFromTicks = new DateTime().AddTicks(ticks);

   Assert.AreEqual(dateTimeFromTicks, DateTime.Today);
}

对于您不需要时间部分的情况:

[TestMethod]
public void DateTimeToInt32()
{
    var dateTimePattern = "yyyyMMdd";
    int numericDateTime = Convert.ToInt32(DateTime.Today.ToString(dateTimePattern));

    DateTime dateTimeFromInt32 = DateTime.ParseExact(numericDateTime.ToString(), dateTimePattern, CultureInfo.InvariantCulture);

    Assert.AreEqual(dateTimeFromInt32, DateTime.Today);
}

或使用OADate

[TestMethod]
public void DateTimeToOADate()
{
    double oADate = DateTime.Today.ToOADate();

    DateTime dateTimeFromOAdate = DateTime.FromOADate(oADate);

    Assert.AreEqual(dateTimeFromOAdate, DateTime.Today);
}

答案 3 :(得分:0)

如果有人仍然希望这样做,我相信他希望将星期几作为从零开始的整数。星期日 = 0 到星期六 = 6

public static DateTime _dt = DateTime.Now;
public static int _day = (int)_dt.DayOfWeek;

今天是星期一,所以 _day == 1