quarta-feira, 21 de agosto de 2013

Trabalhando com Datas no C# - Parte II

Vale lembrar que para visualizar a parte 1 (clique aqui). Neste artigo irei explorar um pouco mais sobre as Datas no framework, bom vamos ao que importa:


Criando um DateTime
Existem várias maneiras de se criar um objeto DateTime. Um objeto DateTime pode ter um Tempo, Localização, Data da cultura, milissegundos e tipo.
            // Criando a partir de uma data e hora
            DateTime dob = new DateTime(1989, 6, 22, 7, 10, 24);

            // Criando a partir de uma String
            string dateString = "6/22/1989 7:10:24 AM";
            DateTime dateFromString =
            DateTime.Parse(dateString, System.Globalization.CultureInfo.InvariantCulture);
            Console.WriteLine(dateFromString.ToString());

            // Limpando
            DateTime emptyDateTime = new DateTime();

            // Adicionando apenas Data
            DateTime justDate = new DateTime(2005, 06, 28);

            // DateTime com localização
            DateTime dateTimeWithKind = new DateTime(1974, 7, 10, 7, 10, 24, DateTimeKind.Local);

            // DateTime com data, hora e milissegundos
            DateTime dateTimeWithMilliseconds = new DateTime(2010, 01, 27, 5, 30, 45, 100);
As Propriedades de um DateTime
            DateTime dob = new DateTime(2010, 1, 27, 8, 05, 24);

            Console.WriteLine("Dia:{0}", dob.Day);
            Console.WriteLine("Mês:{0}", dob.Month);
            Console.WriteLine("Ano:{0}", dob.Year);
            Console.WriteLine("Hora:{0}", dob.Hour);
            Console.WriteLine("Minuto:{0}", dob.Minute);
            Console.WriteLine("Segundo:{0}", dob.Second);
            Console.WriteLine("Millisegundos:{0}", dob.Millisecond);
            Console.WriteLine("Dia da Semana:{0}", dob.DayOfWeek);
            Console.WriteLine("Dia do Ano: {0}", dob.DayOfYear);
            Console.WriteLine("Hora do Dia:{0}", dob.TimeOfDay);
Adicionando e Subtraindo com DateTime
Nós podemos usar métodos de Adição e subtração de somar e subtrair data e hora a partir de um objeto DateTime. Primeiro criamos um TimeSpan com uma data e / ou valores de tempo e use a ferramenta Adicionar e Subtrair métodos, conforme exemplo abaixo vamos adicionar 30 dias:
            DateTime aDia = DateTime.Now;
            TimeSpan aMes = new System.TimeSpan(30, 0, 0, 0);
            DateTime aDiaDepoisAMes = aDia.Add(aMes);
            DateTime aDiaAntesAMes = aDia.Subtract(aMes);
            Console.WriteLine("{0:dddd}", aDiaDepoisAMes);
            Console.WriteLine("{0:dddd}", aDiaAntesAMes);
A estrutura do DateTime, podemos adicionar dias,meses,anos,minutos,segundo... vamos a alguns exemplos:
            DateTime aDia = DateTime.Now;

            // Adicionando dias e meses
            aDia.AddYears(2);
            aDia.AddDays(12);
            // Adicionando horas, minutos, segundo e millisegundos
            aDia.AddHours(4.25);
            aDia.AddMinutes(15);
            aDia.AddSeconds(45);
            aDia.AddMilliseconds(200);
Pesquisar dias em um mês
O método estático DaysInMonth retorna o número de dias em um mês. Este método leva um ano e um mês em números 1-12. O trecho de código na Listagem 6 obtém o número de dias no mês de fevereiro 2010. The output is 28 days. A saída é de 28 dias.
            int dias = DateTime.DaysInMonth(2010, 2);
            Console.WriteLine(dias);
Usando a mesma abordagem, podemos descobrir o número total de dias em um ano. The GetDaysInAYear method in Listing 7 takes a year and returns total number of days in that year. O método GetDaysInAYear leva um ano e retorna o número total de dias no ano
        private int GetDaysInAYear(int year)
        {
            int dias = 0;
            for (int i = 1; i <= 12; i++)
            {
                dias += DateTime.DaysInMonth(year, i);
            }
            return dias;
        }
Formatando a Data
            DateTime dob = new DateTime(2002, 10, 22);
            string[] dateFormats = dob.GetDateTimeFormats();

            foreach (string format in dateFormats)

                Console.WriteLine(format);
O método GetDateTimeFormats também tem uma sobrecarga que leva um especificador de formato como um parâmetro e converte um DateTime para esse formato. É muito importante entender os especificadores de formato DateTime para obter o formato desejado. Table 1 summarizes the formats and their codes. A Tabela abaixo resume os formatos e os seus códigos.
Código
Pattern Padrão















"d" "D"
Sort date Ordenar data
"D" "D"
Long date Data por extenso
"f" "F"
Full date time. data e hora completa. Short time. Curto espaço de tempo.
"F" "F"
Full date time. data e hora completa. Long time. Muito tempo.
"g" "G"
Generate date time. data e hora em Gerar. Short time. Curto espaço de tempo.
"G" "G"
General date time. Geral de data e hora. Long time. Muito tempo.
"M", "m" "M", m "
Month/day. Mês / dia.
"O", "o" "O", "o"
Round-trip date/time. De ida e volta data / hora.
"R", "r" "R", "r"
RFC1123 RFC1123
"s" "S"
Sortable date time. data e hora classificáveis.
"t" "T"
Sort time. Ordenar tempo.
"T" "T"
Long time. Muito tempo.
"u" "U"
Universal sortable date time. Universal de data e hora classificáveis.
"U" "U"
Universal full date time. Universal de data e hora cheia.
"Y", "y" "Y", "y"
Year month. Ano mês.

Bons estudos

Um comentário:

  1. Segue um exemplo utilizando While entre datas

    http://www.edgaresteves.com.br/2014/01/laco-entre-datas-com-o-while.html

    ResponderExcluir