Этот простой тест указывает, что использование TimeSpan может быть немного быстрее, но оба очень быстры, выполняя 10 миллионов итераций за секунду. Время выполнения будет зависеть от других аспектов вашего кода.
[MethodImpl(MethodImplOptions.NoOptimization)]
static void Main(string[] args)
{
Stopwatch sw= new Stopwatch();
DateTime d = DateTime.Now;
sw.Start();
for (int i = 0; i < 10000000; i++)
{
DateTime d2 = d.AddHours(10);
}
sw.Stop();
Console.WriteLine(sw.Elapsed);
sw.Reset();
sw.Start();
for (int i = 0; i < 10000000; i++)
{
DateTime d2 = d + new TimeSpan(10, 0, 0);
}
sw.Stop();
Console.WriteLine(sw.Elapsed);
}
// Core2 Duo, Win7. Коэффициент сохраняется при повторных испытаниях
00: 00: 00.4880733 // AddHours
00: 00: 00.4404034 // добавляем TimeSpan