抱歉对于非常基本的答案,但我正在努力寻找将DateTime.Today转换为int的方法。 这不起作用,但你可以假设我的目标
int CurrentDay = DateTime.Today;
感谢任何帮助。
答案 0 :(得分:8)
使用Day
属性:
int currentDay = DateTime.Today.Day;
获取此实例所代表的月份的日期。
您也可以在需要时使用DayOfWeek
和DayOfYear
。
答案 1 :(得分:0)
您必须将Today转换为String,删除点并转换为int。
你可以尝试:
int currentday = Convert.ToInt32(DateTime.Today.ToShortDateString().Replace(".", ""));
如果添加时间,可以使用长。
过去曾多次在Stack Overflow上询问过这个问题。 例如,看看这个答案:
然后,查看此问题/答案中的右栏,了解更多相关问题/答案。
您可以使用关键字
在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