Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions TP/GH/Acesso.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package trabalho;


public class Acesso {
// Atributos
private String placa, tipoDeAcesso;
private HorarioAcesso inOut;
private float valorAcesso, valorContratante;
private boolean mensalista, evento, noturno, diurno;


private Acesso(){} // metodo construtor padrao privado
public Acesso(String placa, HorarioAcesso inOut, String tipoAcesso){ // metodo construtor alternativo
this.placa = placa;
this.inOut = inOut;

tipoAcesso = tipoAcesso.toLowerCase(); // transforma a string toda para minuculo
if(tipoDeAcesso.equals("mensalista")) // faz o tratamento do tipos boolean
this.mensalista = true;
else if(tipoDeAcesso.equals("evento"))
this.evento = true;
else if(tipoDeAcesso.equals("noturno"))
this.noturno = true;
else if(tipoDeAcesso.equals("diurno"))
this.diurno = true;
}

public String getPlaca(){return placa;} // retorna a placa do carro
public HorarioAcesso getHorarioAcesso(){return inOut;} // retorna o horario de acesso
public float getValorAcesso(){return valorAcesso;} // retorna o valor do acesso
public float getValorContrato(){return valorContratante;} // retorna o valor do contratante

public char getTypeAcess(){ // retorno o tipo de acesso
if(mensalista)
return 'M';
if(evento)
return 'E';
if(noturno)
return 'N';
if(diurno)
return 'D';
return 'F';
}
}
32 changes: 32 additions & 0 deletions TP/GH/Data.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package trabalho;

public class Data {
private int dia;
private int mes;

public Data(int dia, int mes) {
this.dia = dia;
this.mes = mes;
}


private int[] computeTime(String date){ // metodo para reduzir cada parcela da data a um inteiro
int[] data = new int[3];
int i=0;
for(String str : date.split("/")) {
data[i++]=Integer.parseInt(str);
return data;
}
return data;

}


public int getDia() {
return dia;
}

public int getMes() {
return mes;
}
}
57 changes: 57 additions & 0 deletions TP/GH/Duracao.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package trabalho;
import javax.swing.JOptionPane;


import java.time.Duration;
import java.time.LocalDateTime;

public class Duracao {

Data dataEntrada, dataSaida;
Horario horarioEntrada , horarioSaida;

private Duracao() {}
public Duracao(String dataEntrada, String horarioEntrada, String dataSaida, String horarioSaida) {
this.dataEntrada = new Data(computeTime(dataEntrada)[0],computeTime(dataEntrada)[1] );
this.horarioEntrada = new Horario(computeHour(horarioEntrada)[0], computeHour(horarioEntrada)[1]);
this.dataSaida = new Data(computeTime(dataSaida)[0], computeTime(dataSaida)[1]);
this.horarioSaida = new Horario(computeHour(horarioSaida)[0], computeHour(horarioSaida)[1]);
}

private int[] computeTime(String date){ // metodo para reduzir cada parcela da data a um inteiro
int[] data = new int[3];
int i=0;
for(String str : date.split("/")) {
data[i++]=Integer.parseInt(str);
return data;
}
return data;

}
private int[] computeHour(String horario){ // transforma a string horario em um vetor de int com as horas e os minutos
int[] horas = new int[2];
int i=0;
for(String buffer : horario.split(":"))
horas[i++] = Integer.parseInt(buffer);
return horas;
}

/* // Calcula a diferença entre a entrada e a saída
Duration diferenca = calcularDiferencaTempo(dataEntrada, horarioEntrada, dataSaida, horarioSaida);

// Exibe a diferença em dias, horas e minutos
long dias = diferenca.toDays();
long horas = diferenca.toHours() % 24;
long minutos = diferenca.toMinutes() % 60;

System.out.println("Diferença: " + dias + " dias, " + horas + " horas e " + minutos + " minutos.");*/


public static Duration calcularDiferencaTempo(Data dataEntrada, Horario horarioEntrada, Data dataSaida, Horario horarioSaida) {
// Criação dos objetos LocalDateTime para a entrada e saída
LocalDateTime entrada = LocalDateTime.of(2023, dataEntrada.getMes(), dataEntrada.getDia(), horarioEntrada.getHora(), horarioEntrada.getMinuto());
LocalDateTime saida = LocalDateTime.of(2023, dataSaida.getMes(), dataSaida.getDia(), horarioSaida.getHora(), horarioSaida.getMinuto());
// Calcula a diferença entre as datas
return Duration.between(entrada, saida);
}
}
35 changes: 35 additions & 0 deletions TP/GH/Estacionamento.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package trabalho;

public class Estacionamento {
// Atributos
private String name;
private int capacidade, vagaOcupadas, retornoContratante, nAcessos;
private float valorFracao, valorHora, valorDiurno,
valorNoturno, valorMensal, valorEvento, valorArrecadado;
private HorarioFuncionamento inOut;////////////////////////////////////

// Metodo Construtor
private Estacionamento(){}
public Estacionamento(String name, int capacidade, float valorFracao,
float valorHora, float valorDiurno, float valorNoturno,
float valorMensal, float valorEvento, int retornoContratante)
{
this.name = name;
this.capacidade = capacidade;
this.valorFracao = valorFracao;
this.valorHora = valorHora;
this.valorDiurno = valorDiurno;
this.valorNoturno = valorNoturno;
this.valorMensal = valorMensal;
this.valorEvento = valorEvento;
this.retornoContratante = retornoContratante;
this.valorArrecadado = 0;
this.nAcessos = 0;
}
// Metodos 'get'
public int getTotalVagas(){return capacidade;}
public int getVagasOcupadas(){return vagaOcupadas;}
public int getVagasDisponiveis(){return capacidade-vagaOcupadas;}
public boolean temVaga(){return vagaOcupadas < capacidade;}
public float getValorRetorno(){return valorArrecadado*retornoContratante/100;}
}
21 changes: 21 additions & 0 deletions TP/GH/Horario.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package trabalho;

public class Horario {
private int hora;
private int minuto;

public Horario(int hora, int minuto) {
this.hora = hora;
this.minuto = minuto;
}

public int getHora() {
return hora;
}

public int getMinuto() {
return minuto;
}
}


26 changes: 26 additions & 0 deletions TP/GH/HorarioAcesso.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package trabalho;

public class HorarioAcesso {
// Atributos
Horario in, out;
int tempo;

private HorarioAcesso(){} // metodo construtor padrao
public HorarioAcesso(Horario entrada, Horario saida){ // metodo construtor alternativo
this.in = entrada;
this.out = saida;
this.tempo = 0;
computeTime();
}

public void computeTime(){ // calcula quanto tempo o carro ficou no estacionamento
int tempoIn=0, tempoOut=0;

tempoIn += (60*in.getHora())+in.getMinuto(); // transforma o horario de entrada em minutos
tempoOut += (60*out.getHora())+out.getMinuto(); // transforma o horario de saida em minutos
tempo = (tempoIn < tempoOut ? tempoOut-tempoIn : (24*60-tempoIn)+tempoOut); // calcula a diferenca dos horarios
}
public Horario getHorarioEntrada(){return in;}
public Horario getHorarioSaida(){return out;}
public int getTempo(){return tempo;} // retorna o tempo que ficou no estacionamento em minutos
}
12 changes: 12 additions & 0 deletions TP/GH/HorarioFuncionamento.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package trabalho;

public class HorarioFuncionamento {

private Horario in;
private Horario out;

private HorarioFuncionamento() {}
public HorarioFuncionamento(Horario entrada, Horario saida) {}
//public boolean getHorarioFuncionamento() {}
//private int calcHora() {}
}
43 changes: 43 additions & 0 deletions TP/GH/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package trabalho;
import java.awt.GridLayout;

import javax.swing.*;
import javax.swing.*;
import java.awt.*;
import java.io.*;
public class Main {

public static void main(String[] args) {
JPanel painel = new JPanel();
painel.setLayout(new GridLayout(12, 12));

JTextField bufferField = new JTextField();

painel.add(new JLabel("Placa do veiculo:"));
JTextField placaField = new JTextField();
painel.add(placaField);

painel.add(new JLabel("Data de Entrada:"));
JTextField dataInField = new JTextField();
painel.add(dataInField);

painel.add(new JLabel("Horário de Entrada:"));
JTextField HorarioInField = new JTextField();
painel.add(HorarioInField);

painel.add(new JLabel("Data de saída:"));
JTextField dataOutField = new JTextField();
painel.add(dataOutField);

painel.add(new JLabel("Horário de Saída:"));
JTextField HorarioOutField = new JTextField();
painel.add(HorarioOutField);

int result = JOptionPane.showConfirmDialog(null, painel, "Estacionamentos", JOptionPane.OK_CANCEL_OPTION);
if(result == JOptionPane.OK_CANCEL_OPTION)
{
// cria um objeto do tipo 'Acesso'
int age = 18;
}
}
}