//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: "); }
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: "); }