Exemplo n.º 1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Entre com os dados da locação:");
            Console.Write("Modelo do carro: ");
            string modelo = Console.ReadLine();

            Console.Write("Data de aluguel (dd/MM/yyyy hh:mm): ");
            DateTime dataAluguel = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);

            Console.Write("Data de devolução (dd/MM/yyyy hh:mm): ");
            DateTime dataDevolucao = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy HH:mm", CultureInfo.InvariantCulture);

            Console.Write("Entre o valor por hora: ");
            double valorHora = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);

            Console.Write("Entre o valor por dia: ");
            double valorDia = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);

            LocacaoDeCarro aluguelCarro = new LocacaoDeCarro(dataAluguel, dataDevolucao, new Veiculo(modelo));

            LocacaoServico locacaoServico = new LocacaoServico(valorHora, valorDia, new ImpostoBrasilServico());

            locacaoServico.ProcessoLocacao(aluguelCarro);

            Console.WriteLine();
            Console.WriteLine("FATURA:");
            Console.WriteLine(aluguelCarro.Fatura);
        }
Exemplo n.º 2
0
        public void ProcessoLocacao(LocacaoDeCarro locacaoDeCarro)
        {
            //calcula a duração do aluguel com base no instante de locação e o instante de devolução
            TimeSpan duracao = locacaoDeCarro.DataDevolucao.Subtract(locacaoDeCarro.DataAlguel);

            double PagamentoMinimo = 0.0;

            if (duracao.TotalHours <= 12)
            {
                PagamentoMinimo = PrecoHora * Math.Ceiling(duracao.TotalHours);
            }
            else
            {
                PagamentoMinimo = PrecoDia * Math.Ceiling(duracao.TotalDays);
            }

            double imposto = _ImpostoBrasilServico.Imposto(PagamentoMinimo);

            locacaoDeCarro.Fatura = new Fatura(PagamentoMinimo, imposto);
        }