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"); } }
Pages: 1 2