import java.util.Scanner;
class Connexion {
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
int debut = lireEntier("Début de la connexion : ");
int fin = lireEntier("Fin de la connexion : ");
boolean donneesOK = testerDonnees(debut, fin);
if (donneesOK) {
int nbHeures = fin - debut;
int nbHeuresTarif1 = calculerNbHeuresTarif1(debut, fin);
int nbHeuresTarif2 = nbHeures - nbHeuresTarif1;
afficherPrix(nbHeuresTarif1, nbHeuresTarif2);
}
}
/**
* Demande à l'utilisateur d'entrer un entier.
* @param message Le message affiché à l'utilisateur
* @return L'entier entré par l'utilisateur (sans vérification)
*/
static int lireEntier(String message) {
System.out.print(message);
int entier = scanner.nextInt();
return entier;
}
/**
* Vérifie si les données entrées sont cohérentes.
* @param debut Heure du début de la connexion
* @param fin Heure de la fin de la connexion
* @return true si la fin est après le début
*/
static boolean testerDonnees(int debut, int fin) {
if (debut == fin) {
System.out.println("Bizarre, vous n'avez pas été " +
"connecté du tout ...");
return false;
} else if (debut > fin) {
System.out.println("Bizarre, le début est après la fin ...");
return false;
}
return true;
}
/**
* Calcule le nombre d'heures passées en tarif 1
* @param debut Heure du début de la connexion
* @param fin Heure de la fin de la connexion
* @return Le nombre d'heures passées en tarif 1
*/
static int calculerNbHeuresTarif1(int debut, int fin) {
int nb = 0;
for (int heure = debut; heure < fin; heure++) {
if ((heure >= 7) && (heure < 17)) {
nb++;
}
}
return nb;
}
/**
* Affiche le prix à payer par l'utilisateur
* @param nbHeuresTarif1
* @param nbHeuresTarif2
*/
static void afficherPrix(int nbHeuresTarif1, int nbHeuresTarif2) {
int prix = nbHeuresTarif1 * 10 + nbHeuresTarif2 * 5;
System.out.println("Vous avez été connecté " +
(nbHeuresTarif1 + nbHeuresTarif2) +
" heures pour " + prix + " francs");
}
}