C# DataHora

Resumo : neste tutorial você aprenderá como usar o DateTimetipo C# para trabalhar com valores de data e hora.

Criando objetos DateTime em C#

The DateTimeé um tipo de valor que representa datas e horas com valores de January 1, 0001, 00:00:00(meia-noite) a 11:59:59 PM, December 31 9999.

Para criar um DateTimeobjeto, você chama seu construtor e passa várias propriedades de data e hora, como ano, mês, dia, minuto, hora e segundo. Por exemplo:

using static System.Console;

var dt = new DateTime(2023, 5, 15, 7, 0, 0);
WriteLine(dt.ToString());Linguagem de código:  C#  ( cs )

Saída:

5/15/2023 7:00:00 AMLinguagem de código:  C#  ( cs )

Neste exemplo, criamos um DateTimeobjeto com o valor 7:00:00 AMativado May 15, 2023. O DateTimeconstrutor tem muitas sobrecargas de construtor.

Por exemplo, se você usar apenas ano, mês e dia, a hora será padronizada como 12:00:00 AM:

using static System.Console;

var dt = new DateTime(2023, 5, 15);
WriteLine(dt.ToString());Linguagem de código:  C#  ( cs )

Saída:

5/15/2023 12:00:00 AMLinguagem de código:  C#  ( cs )

Acessando propriedades C# DateTime

O DateTimeobjeto fornece muitas propriedades úteis que permitem trabalhar facilmente com datas e horas.

Por exemplo, você pode acessar Year, Month, Day, Hour, Minutee Second por meio das respectivas propriedades como esta:

using static System.Console;

var dt = new DateTime(2023, 5, 15, 7, 0, 0);

WriteLine(dt.Year);
WriteLine(dt.Month);
WriteLine(dt.Day);
WriteLine(dt.Hour);
WriteLine(dt.Minute);
WriteLine(dt.Second);Linguagem de código:  C#  ( cs )

Saída:

2023
5
15
7
0
0Linguagem de código:  C#  ( cs )

Para obter a hora local atual, você pode usar a DateTime.Nowpropriedade. Por exemplo:

using static System.Console;

var dt = DateTime.Now;
WriteLine(dt.ToString());Linguagem de código:  C#  ( cs )

Ele exibirá a hora local atual do computador onde você executa o programa.

Formatando valores DateTime em C#

O formato da data e hora depende de muitos fatores, como cultura, padrões internacionais e preferência pessoal.

Por padrão, o ToString()método do DateTimeobjeto retorna a representação de string de um valor de data e hora com base no padrão de data curta e longa da cultura atual. Por exemplo:

using static System.Console;

var dt = new DateTime(2023, 5, 15, 7, 0, 0);

WriteLine(dt.ToString());Linguagem de código:  C#  ( cs )

Saída:

5/15/2023 7:00:00 AMLinguagem de código:  C#  ( cs )

O método To ToString()possui muitas sobrecargas que permitem personalizar a representação do valor de data e hora.

Por exemplo, você pode usar o especificador de formato "d"e "D"para formatar um DateTimeobjeto usando o padrão de data curta e longa:

using static System.Console;

var dt = new DateTime(2023, 5, 15, 7, 0, 0);

WriteLine(dt.ToString("d")); // 5/15/2023
WriteLine(dt.ToString("D")); // Monday, May 15, 2023Linguagem de código:  C#  ( cs )

Saída:

5/15/2023
Monday, May 15, 2023Linguagem de código:  C#  ( cs )

Veja a string de formato padrão completo de data e hora para referência

Executando cálculos de DateTime

Para retornar um new DateTimeque adiciona um número especificado de anos, meses, dias, horas, minutos e segundos a um valor de uma DateTimeinstância, você usa os métodos AddYears, AddMonths, AddDays, AddHours, AddMinutes, AddSeconds.

Por exemplo, o programa a seguir mostra como usar o AddYears()método para adicionar um ano a uma DateTimeinstância:

using static System.Console;

var dt = new DateTime(2023, 5, 15, 7, 0, 0);

// add one year
var dt2 = dt.AddYears(1);

WriteLine(dt2);Linguagem de código:  C#  ( cs )

Saída:

5/15/2024 7:00:00 AMLinguagem de código:  C#  ( cs )

Como o Add*método retorna uma nova instância do DateTime, você pode encadear os Add*métodos assim:

using static System.Console;

var dt = new DateTime(2023, 5, 15, 7, 0, 0);

// add 1 year, 2 months, 3 days, and 4 hours
var dt2 = dt.AddYears(1)
            .AddMonths(2)
            .AddDays(3)
            .AddHours(4);

WriteLine(dt2);Linguagem de código:  C#  ( cs )

Saída:

7/18/2024 11:00:00 AMLinguagem de código:  C#  ( cs )

Observe que para subtrair um número específico de anos, meses, dias, horas, minutos e segundos de uma DateTimeinstância, você pode usar os métodos Add*, mas usar um valor negativo. Por exemplo:

using static System.Console;

var dt = new DateTime(2023, 5, 15, 7, 0, 0);

// subtract 1 year
var dt2 = dt.AddYears(-1);
WriteLine(dt2);Linguagem de código:  C#  ( cs )

Saída:

5/15/2022 7:00:00 AMLinguagem de código:  C#  ( cs )

Para calcular o intervalo de tempo entre dois DateTimevalores, você pode usar o Subtractmétodo. Por exemplo:

using static System.Console;

var dt1 = new DateTime(2023, 5, 15);
var dt2 = new DateTime(2022, 5, 15);


var interval = dt1.Subtract(dt2);
Console.WriteLine(interval.Days); // 365Linguagem de código:  C#  ( cs )

Neste exemplo, criamos dois DateTimeobjetos e usamos o Subtract()método para subtrair o segundo DateTimeobjeto do primeiro.

O valor de retorno do Subtract()método é um intervalo de tempo com o tipo TimeSpan. E, finalmente, exibimos o número de dias do intervalo de tempo no console.

Resumo

  • Use DateTimeo tipo C# para trabalhar com valores de data e hora.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *