Arquivo da categoria: .NET

Dicas, exemplos de código, soluções e opniões sobre a plataforma de desenvolvimento da Microsoft

Visual Studio 2005 – Extendendo o DataGridView Windows Forms

É, às vezes a Microsoft se esquece de algumas coisas, mas tenta consertar logo depois, seja por meio de patches ou através de exemplos postados em seu Knowledge Base.

Um desses esquecimentos, pelo menos que vivenciei, foi a falta do controle DateTimePicker para o .NET Compact Framework, quando me envolvi em um projeto para Pocket PCs. Apesar do controle não existir na ToolBox do Visual Studio .NET, a Microsoft o disponibiliza no site MSDN com código fonte e tudo mais. O link para o código nesta data é:
http://www.microsoft.com/downloads/details.aspx?FamilyID=11e2aa23-a6d3-441b-b622-b3a4d7695f44&DisplayLang=en

Não ter o controle pode dar um ar de imcompleteza à ferramenta, mas pensando pelo lado bom, talvez a real intenção seja mostrar o que é possível fazer com a esta. Venhamos e convenhamos, que programador se daria ao trabalho de construir do zero um DateTimePicker com todas as suas características? Acho que vale a observação.

Completando o assunto, acho que a Microsoft decidiu fazer o mesmo com o DateTimePicker para o controle DataGridView Windows Forms no Visual Studio 2005. Ele não é nativo, mas é possível adicioná-lo na nossa solução com o código também disponibilizado pela Microsoft:
http://msdn2.microsoft.com/en-us/library/7tas5c80(vs.80).aspx

Além de simplesmente embuti-lo no projeto, vale as pena uma bela olhada no código fonte.

Abraços

Tomás Vásquez

Diferença entre datas em C#

Diferença entre data no C#

O que era uma simples tarefa no VB clássico era tirar a diferença entre duas data baseado no conjunto de funções que a linguagem oferecia. Algo parecido pode ser nas linguagens .NET, porém não de forma tão intuitiva. Existem novos objetos e classes (estruturas ou structs no caso do DateTime) que precisam ser conhecidas e utilizadas para conseguir a mesma informação.

O código abaixo mostra um exemplo de como obter tais dados de forma simples utilizando a linguagem C#.

1
2
3
4
5
6
7
8
9
DateTime startTime = DateTime.Now;
 
DateTime endTime = DateTime.Now.AddSeconds( 100 );
 
TimeSpan span = endTime.Subtract ( startTime );
Console.WriteLine( "Time Difference (seconds): " + span.Seconds );
Console.WriteLine( "Time Difference (minutes): " + span.Minutes );
Console.WriteLine( "Time Difference (hours): " + span.Hours );
Console.WriteLine( "Time Difference (days): " + span.Days );

No exemplo acima, foram criados dois objetos DateTime sendo um com a data atual e o outro com 100 segundo a mais do que a data corrente. Basta executar o método Subtract() da struct DateTime para obter um objeto TimeSpan com a diferença de valores entre as duas datas. O objeto TimeSpan representa um intervalo de tempo, ou duração de tempo, medida como um número positivo ou negativo de dias, horas, minutos, segundos e frações de segundo.

Saída:

1
2
3
4
Time Difference (seconds): 40
Time Difference (minutes): 1
Time Difference (hours): 0
Time Difference (days): 0

Como pode ser visto, 100 segundo equivalem a exatos 1 minuto e 40 segundos, que é o resultado exato do código. Outras propriedades como a quantidade de milisegundos poderia ser também avaliadas.

Um descritivo completo da classe TimeSpan pode ser visto no MSDN: http://msdn2.microsoft.com/en-us/library/system.timespan.aspx

Apesar de ser uma abordagem diferenciada, trata-se de uma mecanismo poderoso de tratamento de data e hora no .NET.

Referência: http://www.dotnetspider.com/kb/Article552.aspx