如何仅根据以下信息创建日期时间: 星期几,小时&小步舞曲。
即。我不在乎它是什么月份,甚至不关心日期是什么(我在数据库中没有这些信息)。
我以为我可以将它们解析为字符串,但结果却比我想象的更难。
答案 0 :(得分:4)
为您创建功能可能对您有所帮助..
public DateTime CreateDayOfWeek(int DayOfWeek,int hour,int min)
{
DateTime dt = new DateTime(DateTime.Now.Year,DateTime.Now.Month,DateTime.Now.Day,hour,min,0);
// The (... + 7) % 7 ensures we end up with a value in the range [0, 6]
int daysUntilTuesday = (DayOfWeek - (int)dt.DayOfWeek + 7) % 7;
// DateTime nextTuesday = today.AddDays(daysUntilTuesday);
dt = dt.AddDays(daysUntilTuesday);
return dt;
}
我已经测试了几个日期,它为我工作.. 如果您有任何问题,请告诉我。
答案 1 :(得分:1)
你说你不关心它是什么月份或日期,这使我假设你想要任何日期,只要它是一周中的正确日期和时间(小时和分钟)。你可以这样做:
var date = new System.DateTime(2016, 9, 25);
date = date.AddDays(dow).AddHours(hours).AddMinutes(minutes);
2016年9月25日是星期天。添加星期几(星期日= 0),即可获得正确的一天。然后添加小时和分钟。当然,如果你愿意,你可以选择任何一个月/一年的任何星期日开始。
答案 2 :(得分:0)
您可以像这样创建日期......
var hour = 1; // you set this from code
var minute = 1; // set this from code
var now = DateTime.Now;
var tempDateTime = new DateTime(now.Year, now.Month, now.Day, hour, minute, 0);
// Make this enum whatever you want your date to be...
var num = (int)DayOfWeek.Sunday;
var dateForComparison = tempDateTime.AddDays(num - (int)tempDateTime.DayOfWeek);
现在,dateForComparison会保存一个日期,其中包含您设置的时间值以及您指定的星期几。
答案 3 :(得分:-1)
您可以创建一个用于构建日期的函数:
public DateTime BuildDate(Int32 day, Int32 hour, Int32 minute)
{
var now = DateTime.Now;
var initialDate = now.AddDays(((Int32)now.DayOfWeek + 1) * -1);
return new DateTime(initialDate.Year, initialDate.Month, initialDate.AddDays(day).Day, hour, minute, 0);
}
在这种情况下,星期几从星期日开始。
答案 4 :(得分:-2)
您可以使用: DateTime.ToString方法(字符串)
DateTime.Now.ToString("ddd HH:mm") // for military time (24 hour clock)