olha eu fiz mais ou menos isso aqui public class main
{
// instance variables - replace the example below with your own
private int diaentrada;
private int mesentrada;
private int anoentrada;
private int horaentrada;
private int minutoentrada;
private int diasaida;
private int messaida;
private int anosaida;
private int horasaida;
private int minutosaida;
private String locatario;
private int pessoas;
private int diarias;
private double valordiaria;
private double valortotal;
/**
* Constructor for objects of class main
*/
public main()
{
Scanner ler = new Scanner(System.in);
System.out.println(" -----------------------------------------------");
System.out.println(" Cálculo de Hospedagem");
System.out.println(" -----------------------------------------------");
System.out.print( " Digite o nome do locatário: ");
locatario = ler.nextLine();
System.out.print( " Digite o numero de pessoas: ");
pessoas = ler.nextInt();
System.out.print( " Digite o valor da diaria: ");
valordiaria = ler.nextInt();
System.out.println(" -----------------------------------------------");
System.out.println(" Digite os dados da entrada: ");
System.out.print( " Dia: ");
diaentrada = ler.nextInt();
System.out.print( " Mês: ");
mesentrada = ler.nextInt();
System.out.print( " Ano: ");
anoentrada = ler.nextInt();
System.out.print( " Hora: ");
horaentrada = ler.nextInt();
System.out.print( " Minutos: ");
minutoentrada = ler.nextInt();
System.out.println(" -----------------------------------------------");
System.out.println(" Digite os dados da saída: ");
System.out.print( " Dia: ");
diasaida = ler.nextInt();
System.out.print( " Mês: ");
messaida = ler.nextInt();
System.out.print( " Ano: ");
anosaida = ler.nextInt();
System.out.print( " Hora: ");
horasaida = ler.nextInt();
System.out.print( " Minutos: ");
minutosaida = ler.nextInt();
System.out.println("");
calculaDiarias(pessoas, valordiaria, diaentrada, mesentrada, anoentrada, horaentrada, minutoentrada, diasaida, messaida, anosaida, horasaida, minutosaida);
valortotal = valordiaria * pessoas * diarias;
System.out.println(" -----------------------------------------------");
System.out.println(" Locatário: " + locatario);
System.out.println(" Entrada: " + diaentrada + "/" + mesentrada + "/" + anoentrada + " - " + horaentrada + ":" + minutoentrada);
System.out.println(" Saída: " + diasaida + "/" + messaida + "/" + anosaida + " - " + horasaida + ":" + minutosaida);
System.out.println(" Diárias: " + diarias);
System.out.println(" Pessoas: " + pessoas);
System.out.println(" -----------------------------------------------");
System.out.println(" Valor Diária: " + valordiaria);
System.out.println(" Total: " + valortotal);
System.out.println(" -----------------------------------------------");
System.out.println(" Por Pessoa: " + (valortotal / pessoas));
}
public double calculaDiarias(int pessoas, double diariavalor, int diaentrada, int mesentrada, int anoentrada, int horaentrada, int minutoentrada, int diasaida, int messaida, int anosaida, int horasaida, int minutosaida)
{
diarias = 0;
// verificar dias
if (diasaida > diaentrada) {
// caso dia saida maior que dia da entrada, incluir numero de dias
diarias = diarias + (diasaida - diaentrada);
}
// verificar meses
if (messaida > mesentrada) {
// caso mes saida maior que mes da entrada
// verificar dias
if (diasaida > diaentrada) {
// caso dia saida maior que dia entrada, incluir numero de meses
diarias = diarias + ((messaida - mesentrada) * 30);
} else {
// caso dia saida menor, incluir numero de meses + parcial do ultimo mes
diarias = diarias + ((messaida - mesentrada - 1) * 30);
diarias = diarias + (30 - diaentrada + diasaida);
}
}
// verificar anos
if (anosaida > anoentrada) {
// caso ano saida maior que ano entrada
if (messaida > mesentrada) {
// e caso mes saida maior que mes entrada, incluir numero de anos
diarias = diarias + ((anosaida - anoentrada) * 365);
} else {
// mas caso mes saida menor que mes entrada
// verificar dias
if (diasaida >= diaentrada) {
// caso dia saida maior ou igual que dia entrada, incluir numero de anos
diarias = diarias + ((anosaida - anoentrada) * 365);
} else {
// caso dia saida menor, incluir numero de anos e dias
diarias = diarias + ((anosaida - anoentrada - 1) * 365);
diarias = diarias + (30 - diaentrada + diasaida);
// verificar meses
if (messaida < mesentrada) {
// caso mes saida menor que mes entrada, incluir meses
diarias = diarias + ((anosaida - anoentrada- 1) * 365);
} else {
// caso mes igual, incluir 11 meses
diarias = diarias + (11 * 30);
}
}
}
}
if (horasaida >= 12) {
if (horaentrada < 12) {
diarias = diarias + 2;
} else {
diarias = diarias + 1;
}
}
return diarias;
}
}