对于我的SteamBot,我想存储再次可以交易的日期和时间。
示例:
// DateNow = 05.06.2019 13:37:00
(+ 7 days due to Steam's trade policy)
// DateNow+7Days = 12.06.2019 13:37:00
// DateIneed = 13.06.2019 09:00:00
所以我需要的DateTime是CurrentDateTime + 7天+剩下的9点钟
这就是我要走的路:
var date = DateTime.Now.AddDays(7);
有什么聪明的方法可以始终获取我需要的DateTime吗?
语言是C#
答案 0 :(得分:6)
我认为您可以很容易地检查今天是否是今天9点之前,然后将时间设置为9,否则添加一天并将时间设置为9。
var time = DateTime.Now;
var date = time.Hour <= 9
? time.Date.AddDays(7).AddHours(9)
: time.Date.AddDays(7).AddHours(9).AddDays(1);
答案 1 :(得分:0)
DateTime.Date
字段公开{em> just DateTime
的日期,然后您可以在其中添加任意TimeSpan
来设置{{ 1}}反对您想要的任何东西;
DateTime
在此处进行操作:https://dotnetfiddle.net/l3X37y
鉴于一天中的某个小时可能已经过了上午9点,因此可能以DateTime.Now.AddDays(7).Date.Add(new TimeSpan(9, 0, 0))
结尾的时间少于7天,为此,您可以检查一天中的某个小时是否超过了您要去的时间将DateTime
设置为DateTime
并添加一天,就像这样;
DateTime dt = DateTime.Now.AddDays(7);
dt = dt.Date.Add(new TimeSpan(dt.Hour >= 9 ? 1 : 0, 9, 0, 0))
在此处查看此操作:https://dotnetfiddle.net/lfVGis