-2
最终日期值应该是类似于20080405
的东西,但是这显示为20080229
。如何获得日期的平均值
public class Program
{
public static void Main(string[] args)
{
DateTime dt1 = new DateTime(dt);
List<DateTime> arryDates = new List<DateTime>();
Decimal[] avgdatetimevalues = { 20080229, 20080304, 20080304, 20080224 };//(Sum =61; sum/4 = 20080265)
// the final date value should be something like 20080405 but this is showing as 20080229
try
{
for(int i = 0; i< avgdatetimevalues.Length; i++)
{
arryDates.Add(ValueToDate(avgdatetimevalues[i]));
}
var cnt = arryDates.Count();
double temp = 0D;
if (cnt > 0)
{
for (int i = 0; i < cnt; i++)
{
temp += (arryDates[i].Ticks/(double)cnt);
}
var average = new DateTime((long)temp);
}
}
catch (Exception ex)
{
throw;
}
}
public static DateTime ValueToDate(decimal dt)
{
DateTime dates;
DateTime.TryParseExact(dt.ToString(), "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out dates);
return dates;
}
}
你可以发布你试过的代码吗? – Isaac
已添加我的实施代码并寻找最终日期值 – Joyfulkris
某些日期(无论如何)的“平均”在所有日期之后如何下降? 2008-02-29加几个小时实际上听起来是正确的。另外,为什么使用小数而不是实际的DateTime对象? –