// Busca pessoa pelo nome ou sobrenome public static void BuscarPessoasPeloNome(Agenda agenda) { int idade; Console.WriteLine("\nDigite o nome, ou sobrenome, da pessoa que deseja pesquisar: "); string nome = Console.ReadLine(); Console.WriteLine("\n\n"); List<Pessoa> pessoa = agenda.BuscarPessoasPeloNome(nome); int pessoasEncontradas = 0; for (int i=0;i<pessoa.Count;i++) { pessoasEncontradas++; } if (pessoa == null) { Console.WriteLine("Pessoa não encontrada!"); return; } else { Console.WriteLine(pessoasEncontradas+" Pessoas encontradas: \n\n"); for (int i = 0; i < pessoa.Count; i++) { // Imprime a idade e a quantidade de dias para o próximo aniversário DateTime dataNascimento = pessoa[i].DataNascimento; DateTime hoje = new DateTime(DateTime.Now.Date.Year, DateTime.Now.Date.Month, DateTime.Now.Date.Day); DateTime proximoAniversario = new DateTime(DateTime.Now.Date.Year, dataNascimento.Month, dataNascimento.Day); //.Date elimina a hora TimeSpan diasParaAniversario = proximoAniversario - hoje; if (dataNascimento.Date.Day == DateTime.Now.Date.Day && dataNascimento.Date.Month == DateTime.Now.Date.Month) //Aniversariante do dia { Console.WriteLine(); idade = DateTime.Today.Year - dataNascimento.Year; Console.WriteLine("\t\t***********************************************************\n"); Console.WriteLine("\t\t" + (i + 1) + " ª Pessoa:\n"); Console.WriteLine("\t\tAniversariante do dia!!!\n"); Console.WriteLine("\t\tNome: " + pessoa[i].Nome + " " + pessoa[i].Sobrenome); Console.WriteLine("\t\tData de nascimento: " + pessoa[i].DataNascimento.ToShortDateString()); Console.WriteLine("\t\t" + pessoa[i].Nome + " " + pessoa[i].Sobrenome + " completou hoje " + idade + " anos.\n"); Console.WriteLine("\t\tId: " + pessoa[i].IdPessoa + "\n"); Console.WriteLine("\t\t************************************************************"); Console.WriteLine("\n\n"); } else if (diasParaAniversario.Days < 0) //Caso a data já tenha ocorrido (correção de quantidade negativa) { Console.WriteLine(); Console.WriteLine((i + 1) + "ª Pessoa: "); Console.WriteLine("Id: " + pessoa[i].IdPessoa); Console.WriteLine("Nome: \t " + pessoa[i].Nome + " " + pessoa[i].Sobrenome); Console.WriteLine("Data de Nascimento: " + pessoa[i].DataNascimento.ToShortDateString()); DateTime proximo = new DateTime(DateTime.Now.Date.Year+1, dataNascimento.Month, dataNascimento.Day); // Adiciona 1 ano para o aniversario que já ocorreu TimeSpan dias = proximo - hoje; Console.WriteLine("Faltam " + dias.Days + " dias para o próximo aniversário. Caso 1"); idade = DateTime.Today.Year - dataNascimento.Year; Console.WriteLine(pessoa[i].Nome + " " + pessoa[i].Sobrenome + " tem " + idade + " anos."); } else //Todos os demais casos { Console.WriteLine(); Console.WriteLine((i + 1) + "ª Pessoa: "); Console.WriteLine("Id: " + pessoa[i].IdPessoa); Console.WriteLine("Nome: \t " + pessoa[i].Nome + " " + pessoa[i].Sobrenome); Console.WriteLine("Data de Nascimento: " + pessoa[i].DataNascimento.ToShortDateString()); Console.WriteLine("Faltam " + diasParaAniversario.Days + " dias para o próximo aniversário. Caso 2"); idade = DateTime.Today.Year - dataNascimento.Year - 1; // Ainda não fez aniversário, não completou a idade no presente ano Console.WriteLine(pessoa[i].Nome + " " + pessoa[i].Sobrenome + " tem " + idade + " anos."); } } Console.ReadLine(); } Console.Clear(); }