// Imprime toda a agenda public static void ImprimirAgenda(Agenda agenda) { List<Pessoa> pessoa = agenda.ObterTodasPessoas(); int idade; Console.WriteLine("Lista de pessoas na agenda:\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.ToString("dd/MM/yyyy")); 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("Nome: \t " + pessoa[i].Nome + " " + pessoa[i].Sobrenome); Console.WriteLine("Data de nascimento: " + pessoa[i].DataNascimento.ToString("dd/MM/yyyy")); // Adiciona 1 ano para o aniversario que já ocorreu este ano DateTime proximo = new DateTime(DateTime.Now.Date.Year + 1, dataNascimento.Month, dataNascimento.Day); 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."); Console.WriteLine("Id: " + pessoa[i].IdPessoa); } else //Todos os demais casos { Console.WriteLine(); Console.WriteLine((i + 1) + "ª Pessoa: "); Console.WriteLine("Nome: \t " + pessoa[i].Nome + " " + pessoa[i].Sobrenome); Console.WriteLine("Data de nascimento: " + pessoa[i].DataNascimento.ToString("dd/MM/yyyy")); 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.WriteLine("Id: " + pessoa[i].IdPessoa); } } Console.ReadLine(); Console.Clear(); }