Método para calcular com eficiência a diferença de data em C#
] Em vários cenários de programação, determinar a diferença no número de dias entre duas datas é uma tarefa comum. Em C#, existem várias maneiras de calcular essa diferença, incluindo o uso da classe date
e a estrutura timespan
.
use a classe de data e a estrutura do timespan
] Uma maneira simples de calcular a diferença no número de dias entre duas datas é usar a classe date
para representar duas datas e depois subtraí -las para obter uma timespan
objeto:
DateTime startDate = new DateTime(2023, 1, 1);
DateTime endDate = new DateTime(2023, 3, 8);
TimeSpan days = endDate - startDate;
Console.WriteLine(days.TotalDays); // 输出:66
Este código usa o atributo totalDays
do objeto timespan
para recuperar o número de dias entre a data de início e a data de término. O resultado deste exemplo é 66, ou seja, o número de dias de 1 de janeiro a 8 de março de 2023.
use a classe de matemática
] Outra maneira de calcular a diferença no número de dias entre as datas é usar o método math.abs ()
para encontrar a diferença absoluta entre dois valores de data expressos em um tick:
long startDateTicks = new DateTime(2023, 1, 1).Ticks;
long endDateTicks = new DateTime(2023, 3, 8).Ticks;
long days = Math.Abs(endDateTicks - startDateTicks) / TimeSpan.TicksPerDay;
Console.WriteLine(days); // 输出:66
Este método depende da propriedade ticks
da classe DATETIME
, que retorna o número de ticks desde o início do calendário gregoriano (intervalo nanossegundos de 100 nanossegundos). Ao dividir essa diferença pelo número de ticks de cada dia, obtemos o número de dias entre as duas datas.
Perceber:
Não importa qual método você escolher, verifique se o valor da data é válido e representa a data no calendário gregoriano. Além disso, considere o manuseio de casos em que a data de início é posterior à data de término.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3