// Em POO sempre procura trabalhar com abstração como a inteface ao inves de classe // Liguagem intermediaria que a plataforma .Net transforma o código se chama JIT static void Main(string[] args) { int quantidadePessoa; List <Pessoa> pessoas = new List <Pessoa>(); Console.WriteLine("Hello World"); Console.WriteLine("Digite a quantidade de Pessoas"); quantidadePessoa = int.Parse(Console.ReadLine()); int i = 1; while (i <= quantidadePessoa) { Pessoa pessoa = new Pessoa(); Console.WriteLine("Digite o nome da " + i + " pessoa"); pessoa.Nome = Console.ReadLine(); Console.WriteLine("Digite a data de Nascimento"); pessoa.DataNascimento = Console.ReadLine(); while (!Funcoes.ValidaData(pessoa.DataNascimento)) { Console.WriteLine("Data incorreta"); Console.WriteLine("Irá tentar novamente S/N?"); string resposta = Console.ReadLine().ToLower(); if (resposta != "s") { break; } Console.WriteLine("Digite a data de Nascimento"); pessoa.DataNascimento = Console.ReadLine(); } if (Funcoes.ValidaData(pessoa.DataNascimento)) { Console.WriteLine("Pessoa Salva"); pessoas.Add(pessoa); } else { Console.WriteLine("Pessoa não Salva"); } i += 1; } foreach (Pessoa p in pessoas) { Console.WriteLine("A pessoa " + p.Nome); Console.WriteLine("Tem: " + p.CalculaIdade()); Console.WriteLine("Signo da pessoa: " + p.NomeSigno()); } Console.ReadKey(); }
protected string NomeSigno(string data) { if (Funcoes.ValidaData(data)) { string dataConvertida = Funcoes.SomenteNumeros(data); int ano = int.Parse(dataConvertida.Substring(4, 4)); int mes = int.Parse(dataConvertida.Substring(2, 2)); int dia = int.Parse(dataConvertida.Substring(0, 2)); TipoSigno signo = Signos.FirstOrDefault(s => (dia >= s.DiaInicio && mes == s.MesInicio) || (dia <= s.DiaFim && mes == s.MesFim)); return(signo.Nome ?? "Não existe um signo para essa data"); } else { return("Data inválida"); } }
public string CalculaIdade() { if (!Funcoes.ValidaData(DataNascimento)) { return("Data inválida"); } //var apenasNumeros = new Regex(@"[^\d]"); //string dataConvertida = apenasNumeros.Replace(DataNascimento, ""); string dataConvertida = Funcoes.SomenteNumeros(DataNascimento); DateTime dateAtual = DateTime.Now; int ano = int.Parse(dataConvertida.Substring(4, 4)); int mes = int.Parse(dataConvertida.Substring(2, 2)); int dia = int.Parse(dataConvertida.Substring(0, 2)); if (ano <= dateAtual.Year) { if (dia == dateAtual.Day && mes == dateAtual.Month && ano == dateAtual.Year) { return("Parece que nasceu hoje"); } if (mes == dateAtual.Month && dia == dateAtual.Day) { return("Parabéns, seu aniversário é hoje, você faz " + (dateAtual.Year - ano) + " anos"); } if (mes > dateAtual.Month || (mes == dateAtual.Month && dia > dateAtual.Day)) { return((dateAtual.Year - ano - 1) + " anos"); } else { return((dateAtual.Year - ano) + " anos"); } } return("Data não Calculável"); }