我有一个开始时间和不断增加的价值。我试图获得这个增加值的每日平均值。问题是我无法想到如何从DateTime获取一个小数乘以该值。
答案 0 :(得分:1)
DateTime
个对象可以相互减去,得到TimeSpan
。 TimeSpan具有.TotalDays
属性,表示计算TimeSpan的两次之间的天数。从较晚的时间中减去较早的时间非常重要。现在的时间减去12小时前的时间,给出.TotalDays
为0.5
var val = 24;
var startTime = DateTime.Now.AddHours(-12); //fake 12h ago
var dailyAvg = val / (DateTime.Now - startTime).TotalDays;
TimeSpan也有一个.Days属性,但这不是你想要的,因为它是整个天数的整数..名称如.TotalXXX的属性给出了代表整个TimeSpan的小数和分数的小数指定的单位。没有单词Total in的属性将用于格式化字符串,如:
var ts = DateTime.Now - messagePostingDate;
var ago = "Message posted " + ts.Days + " days and " + ts.Hours + " hours ago";