Exemplo n.º 1
0
        //Método para imprimir os dados da devolução dos filmes e os cálculo total das diárias
        public void Calculo(int codigoCli, DateTime dataDevol, int codigoFilm)
        {
            // Acessando o arquivo de texto: 'Acervo', cujo
            //endereçco 'caminho' está na classe 'Acervo'
            StreamReader sr = File.OpenText(ac.Caminho());

            //Criando o acabeçalho
            Console.WriteLine();
            ft.MargEsqu();
            Console.WriteLine("Calculo da Locação:");
            Console.WriteLine();

            // Traçando uma linha horizontal
            LinhaHorizontaEL();

            //Formatando o cabeçalho inferior
            Console.Write("\t");
            Console.Write(ft.Caracter() + "    Título     /     Cliente        /  Data da Retirada  /  Data devolução  /  Locação por dia  /  Total dias  / Valor  ");
            int conta5 = (ft.Caracter() + "    Título     /     Cliente        /  Data da Retirada  /  Data devolução  /  Locação por dia  /  Total dias  / Valor  ").Count();
            int conta6 = ac.CountMaxCaract() - conta5 - 2;

            for (int i = 1; i < conta6; i++)
            {
                Console.Write(" ");
            }
            Console.WriteLine(ft.Caracter());

            // Traçando uma linha horizontal
            LinhaHorizontaEL();

            //zerando um somador
            double soma = 0;

            while (!sr.EndOfStream)
            {
                //Lendo e selecionando os dados do arquivo 'Acervo'
                string[] line    = sr.ReadLine().Split(',');
                int      codigo  = int.Parse(line[0]);
                string   titulo  = line[1];
                int      codigo2 = int.Parse(line[2]);
                string   cliente = line[3];
                DateTime data    = DateTime.Parse(line[4]);

                //Calculo do tempo de locação dos filmes e o valor do serviço
                if (codigo2.Equals(codigoCli))
                {
                    //Armazenando a data de hoje
                    int day   = dataDevol.Day;
                    int month = dataDevol.Month;

                    //Armazenando a data de locação
                    int day2   = data.Day;
                    int month2 = data.Month;

                    //Cálculo do tempo total de locação
                    int    totalTime    = day - day2 + (month - month2) * 30;
                    double valorLocacao = 5.5;
                    double result       = totalTime * valorLocacao;

                    //Somando as locações devidas
                    soma += result;

                    //Formatando o corpo
                    int conta = (ft.Caracter() + " " + titulo + ", " + cliente + ", " + data.ToString("dd / MM / yyyy", CultureInfo.InvariantCulture) + "..,.."
                                 + dataDevol.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture) + ", " + "R$ " + valorLocacao.ToString("F2", CultureInfo.InvariantCulture)
                                 + ", " + (totalTime) + " dias, " + "valor Total da Locação R$: " + result.ToString("F2", CultureInfo.InvariantCulture)).Count();
                    int conta2 = ac.CountMaxCaract() - conta + 46;
                    Console.Write("\t");
                    Console.Write(ft.Caracter() + " " + titulo + ", " + cliente + ", " + data.ToString("dd / MM / yyyy", CultureInfo.InvariantCulture) + "..,.."
                                  + dataDevol.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture) + ", " + "R$ " + valorLocacao.ToString("F2", CultureInfo.InvariantCulture)
                                  + ", " + (totalTime) + " dias, " + "valor Total da Locação R$: " + result.ToString("F2", CultureInfo.InvariantCulture));
                    for (int i = 1; i < conta2; i++)
                    {
                        Console.Write(" ");
                    }
                    Console.WriteLine(ft.Caracter());
                }
            }

            // Traçando uma linha horizontal
            LinhaHorizontaEL();

            Console.WriteLine();
            ft.MargEsquRed();
            ft.MargEsquRed();
            ft.MargEsquRed();
            //Imprimindo o valor total da locação
            Console.Write("Valor total = R$ ");
            Console.WriteLine(soma.ToString("F2", CultureInfo.InvariantCulture));

            Console.WriteLine();
            ft.MargEsqu();
            Console.Write("Digite uma opção do menu: ");
        }
Exemplo n.º 2
0
        public void Procura(string nome)
        {
            //Declarando as classes 'Acervo' e 'Formatação'
            Acervo     ac = new Acervo();
            Formatacao ft = new Formatacao();

            // Acessando o arquivo de texto: 'Acervo', cujo
            //endereçco 'caminho' está na classe 'Acervo'
            StreamReader sr = File.OpenText(ac.Caminho());

            //Criando o acabeçalho
            Console.WriteLine();
            ft.MargEsqu();
            Console.WriteLine("\t\tResultado da busca:");
            ft.MargEsquRed();
            Console.WriteLine("\t(Atenção: código do cliente vazio e data = 01/01/0001 significa que o filme não está locado)");
            Console.WriteLine();

            // Traçando uma linha horizontal
            ac.LinhaHorizontaL();

            //Centralizando o cabeçalho e colocando as linhas verticais
            ft.MargEsqu();
            Console.Write(ft.Caracter() + "  \t\tTitulo encontrado");
            int conta3 = (ft.Caracter() + "  \t\tTitulo encontrado").Count();
            int conta4 = ac.CountMaxCaract() - conta3 - 13;

            for (int i = 1; i < conta4; i++)
            {
                Console.Write(" ");
            }
            Console.WriteLine(ft.Caracter());

            // Traçando uma linha horizontal
            ac.LinhaHorizontaL();

            //Centralizando o cabeçalho inferior e colocando as linhas verticais
            ft.MargEsqu();
            Console.Write(ft.Caracter() + "  Código  /   Título  /   Cliente   /  Data locação");
            int conta5 = (ft.Caracter() + "  Código  /   Título  /   Cliente   /  Data locação").Count();
            int conta6 = ac.CountMaxCaract() - conta5 - 2;

            for (int i = 1; i < conta6; i++)
            {
                Console.Write(" ");
            }
            Console.WriteLine(ft.Caracter());

            // Traçando uma linha horizontal
            ac.LinhaHorizontaL();

            while (!sr.EndOfStream)
            {
                //Lendo e selecionando os dados do arquivo 'Acervo'
                string[] line    = sr.ReadLine().Split(',');
                int      codigo  = int.Parse(line[0]);
                string   titulo  = line[1];
                string   cliente = line[3];
                string   data    = line[4];

                //Selecionando o termo de busca
                if (titulo.Contains(nome))
                {
                    // Para códigos de filme com um digito
                    if (codigo < 10)
                    {
                        int conta  = (ft.Caracter() + " " + codigo + " . . ." + titulo + "/ " + "/ " + cliente + "/ " + data).Count();
                        int conta2 = ac.CountMaxCaract() - conta - 2;
                        ft.MargEsqu();
                        Console.Write(ft.Caracter() + " " + codigo + " . . ." + titulo + "/ " + "/ " + cliente + "/ " + data);
                        for (int i = 1; i < conta2; i++)
                        {
                            Console.Write(" ");
                        }
                        Console.WriteLine(ft.Caracter());
                    }
                    // Para códigos de filme com dois digitos
                    if (codigo >= 10)
                    {
                        int conta  = (ft.Caracter() + " " + codigo + " . . " + titulo + "/ " + "/ " + cliente + "/ " + data).Count();
                        int conta2 = ac.CountMaxCaract() - conta - 2;
                        ft.MargEsqu();
                        Console.Write(ft.Caracter() + " " + codigo + " . . " + titulo + "/ " + "/ " + cliente + "/ " + data);
                        for (int i = 1; i < conta2; i++)
                        {
                            Console.Write(" ");
                        }
                        Console.WriteLine(ft.Caracter());
                    }
                }
            }

            // Traçando uma linha horizontal
            ac.LinhaHorizontaL();

            Console.WriteLine();
            ft.MargEsqu();
            Console.WriteLine("Fim da pesquisa");
            Console.WriteLine();
            ft.MargEsqu();
            Console.Write("Digite uma opção do menu: ");
        }