public void ProcessarRecibo(AluguelDeVeiculo aluguelDeVeiculo) { TimeSpan duracao = aluguelDeVeiculo.Devolucao.Subtract(aluguelDeVeiculo.Retirada); double valorServico; if (duracao.TotalHours <= 12.0) { valorServico = PrecoPorHora * Math.Ceiling(duracao.TotalHours); } else { valorServico = PrecoPorDia * Math.Ceiling(duracao.TotalDays); } double valorImposto = _servicoDeImpostos.Imposto(valorServico); aluguelDeVeiculo.Recibo = new Recibo(valorServico, valorImposto); }
static void Main(string[] args) { Console.WriteLine("==== Seção 14: Interfaces ===="); Console.WriteLine(); Console.WriteLine("Dados do aluguel"); Console.Write("Modelo do veículo: "); string modelo = Console.ReadLine(); Console.Write("Retirada (dd/mm/aaaa hh:mm): "); string retiradaString = Console.ReadLine().Trim(); DateTime retirada = DateTime.ParseExact(retiradaString, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); Console.Write("Devolução (dd/mm/aaaa hh:mm): "); string devolucaoString = Console.ReadLine().Trim(); DateTime devolucao = DateTime.ParseExact(devolucaoString, "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture); Veiculo veiculo = new Veiculo(modelo); AluguelDeVeiculo aluguelDeVeiculo = new AluguelDeVeiculo(retirada, devolucao, veiculo); Console.WriteLine(); Console.WriteLine(); Console.Write("Preço por hora: R$ "); double precoPorHora = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); Console.Write("Preço por dia: R$ "); double precoPorDia = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture); ServicoDeAluguel servicoDeAluguel = new ServicoDeAluguel(precoPorDia, precoPorHora, new ImpostosBrasil()); servicoDeAluguel.ProcessarRecibo(aluguelDeVeiculo); Console.WriteLine(); Console.WriteLine("Recibo"); Console.WriteLine("Valor do serviço: R$ " + aluguelDeVeiculo.Recibo.ValorDoServico.ToString("F2", CultureInfo.InvariantCulture)); Console.WriteLine("Valor do imposto: R$" + aluguelDeVeiculo.Recibo.Imposto.ToString("F2", CultureInfo.InvariantCulture)); Console.WriteLine("Total: R$ " + aluguelDeVeiculo.Recibo.PagamentoTotal.ToString("F2", CultureInfo.InvariantCulture)); }