C#

Como calcular diferença entre datas em C#

Calcular a diferença entre duas datas é uma tarefa comum em muitas aplicações C#. Seja para determinar a idade de uma pessoa, calcular prazos ou medir intervalos de tempo, a manipulação de datas é essencial. Neste post, vamos explorar como fazer isso utilizando a classe DateTime.

Cálculo da diferença entre datas

Calcular a diferença entre datas em C# é uma tarefa bastante fácil e direta, principalmente graças à classe DateTime e à estrutura TimeSpan, que facilitam a manipulação e o cálculo de datas.

Passos Básicos

  1. Obter as datas: Você pode obter as datas de diversas fontes, como DateTimePickers, campos de entrada ou diretamente no código;

  2. Calcular a diferença: A diferença entre duas datas é obtida simplesmente subtraindo uma DateTime da outra, resultando em um objeto TimeSpan;

  3. Interpretar o resultado: O objeto TimeSpan fornece propriedades que permitem acessar a diferença em dias, horas, minutos e segundos.
using System;
using System.Windows.Forms;

namespace CalcularDiferencaDatas
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void buttonCalculate_Click(object sender, EventArgs e)
        {
            CalculateDateDifference();
        }

        private void CalculateDateDifference()
        {
            // Obtém as datas selecionadas pelos DateTimePickers
            DateTime startDate = dateTimePickerStart.Value;
            DateTime endDate = dateTimePickerEnd.Value;

            // Calcula a diferença entre as duas datas
            TimeSpan difference = endDate - startDate;

            // Mostra a diferença em dias, horas, minutos e segundos
            labelResult.Text = $"Diferença: {difference.Days} dias, " +
                               $"{difference.Hours} horas, " +
                               $"{difference.Minutes} minutos, " +
                               $"{difference.Seconds} segundos.";
        }
    }
}

Explicação do código

  • buttonCalculate_Click: Este método é o manipulador de eventos que é chamado quando o botão para calcular a diferença é clicado. Ele chama o método CalculateDateDifference();

  • CalculateDateDifference: Este método realiza o cálculo da diferença entre as duas datas:

    • As datas são obtidas a partir dos DateTimePickers.
    • A diferença entre as datas é calculada usando TimeSpan, que representa um intervalo de tempo.
    • A diferença é apresentada no Label, mostrando a quantidade de dias, horas, minutos e segundos.

Outro exemplo prático

No código abaixo vemos como calcular a diferença entre datas distintas e mostrá-la na tela. Veja:

DateTime hoje = DateTime.Today; //a data de hoje

   TextBox.Text = "01/07/2016"; //exemplo de data

   //calcula a diferença entre a data de hoje e outra data
   int totalDiasAtraso = (DateTime.Parse(hoje.ToString("dd/MM/yyyy")).
   Subtract(DateTime.Parse(TextBox.Text))).Days;

   //mostra a diferença em dias
   tbDiasAtraso.Text = Convert.ToString(totalDiasAtraso); 

Calcular a diferença entre datas em C# é uma tarefa simples, mas poderosa. O uso da classe DateTime e da estrutura TimeSpan torna a manipulação de datas intuitiva e eficiente. Você pode expandir essa funcionalidade para incluir mais lógica, como validações de entrada ou o cálculo de semanas e meses.

Aprenda do zero ou aprimore seus conhecimentos em C#. Domine os conceitos de Orientação a Objetos e crie sistemas complexos integrados com banco de dados.

CONHEÇA O CURSO COMPLETO DE C# COM + DE 100 AULAS PRÁTICAS. Tenha acesso vitalício e certificado de conclusão.

CLIQUE NA IMAGEM ABAIXO E CONFIRA MAIS DETALHES:

Link do curso: https://go.hotmart.com/L70031146H


Dúvidas ou sugestões sobre como calcular diferença entre datas em C#? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
 https://youtube.com/criandobits

Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *