dateonly

Olá pessoal, meu nome é Mauricio Junior e hoje eu vou falar um pouco sobre o C# com a variável do tipo DateOnly que representa apenas o dia, mês e ano. Isso mesmo, não existe time para esse tipo.

Eu estava trabalhando e desenvolvendo um sistema que tinha esse campo e eu preciso mostrar os aniversariantes do dia na tela. O que eu fiz foi Web mas pode ser feito o mesmo com Desktop ou Api.

Esee é o campo:

public DateOnly PacientBirthday { get; set; }

Como eu já tenho um método que retorna todos os usuários do sistema, agora eu preciso fazer uma busca neste campo que analisa o valor para informar que esse determinado paciente vai fazer aniversário hoje.

O primeiro ponto é: o aniversariante não pode ser verificado pelo ano, para identificar o sistema é necessário verificar o mês e o dia com o valor do database.

Segundo: Para esse tipo de campo você pode fazer uma verificação usando LINQ sem qualquer problema.

Pega todos os pacientes:

var pacients = _clinicPacientService.GetAll();

Pega o dia de hoje pelo DateOnly:

DateOnly.FromDateTime(DateTime.Today).Day

Pega o mês de hoje pelo DateOnly:

DateOnly.FromDateTime(DateTime.Today).Month

Dentro da variável pacients eu posso verificar com o .where para verificar se o paciente aparece na lista.

Pesquisa com o LINQ:

//filtering
    var results = pacients
    	.Where(x => x.PacientBirthday.Day == DateOnly.FromDateTime(DateTime.Today).Day && 
    	x.PacientBirthday.Month == DateOnly.FromDateTime(DateTime.Today).Month);
    		   

Note que eu verifiquei o dia e o mês para que identifique quem pode ser o aniversariante do dia.

Espero ter ajudado e qualquer dúvida pode entrar em contato comigo pelo site www.mauriciojunior.net.