1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
|
#! /usr/bin/perl
use warnings;
#On entre le nom de l'utilisateur
print "\nVeuillez entrer le nom de l\'utilisateur et appuyer sur \'entrée\': \n";
my $utilisateur = <STDIN>;
#on entre l'heure de releve de la production sous la forme HH:MM:SS
print "Veuillez entrer l\'heure de releve de la production sous la forme HH:MM:SS :\n";
my $releve = <STDIN>;
#On découpe $releve en 3 termes: $hours_rel:$min_rel:$sec_rel et on met le tout dans un tableau
my @tab = split(/:/, $releve);
my $hours_rel=$tab[0];
my $min_rel=$tab[1];
my $sec_rel=$tab[2];
#on entre la production faite du debut jusqu'au relevé
print "Veuillez entrer la production faite du debut jusqu'au relevé: \n";
my $prod_tot = <STDIN>;
#on entre la production faite par heure
print "Veuillez entrer la production faite par heure: \n";
my $prod_by_hours = <STDIN>;
#on cherche la valeur exacte du nombre d'heures
my $deb_hours=$prod_tot/$prod_by_hours;
#Afin d'arrondir, on découpe le resultat en 2 termes: ce qu'il y a avant le '.' et ce qu'il y a après le point et on met le tout dans un tableau
#Le 1er terme du tableau contient le nombre/terme avant le "."
#Le 2eme terme du tableau contient le nombre/terme apres le "."
@tab = split(/\./, $deb_hours);
#On affecte le nombre d'heure arrondi à la variable $deb_hours qui ne sera pas réutilisée
$deb_hours = $tab[0];
#On affecte le reste du nombre d'heures (0.18 dans ton exemple) à la variable $deb_min
my $deb_min = "0".".".$tab[1];
#On multiplie $deb_min par 60 pour avoir la valeur exacte du nombre de minutes
$deb_min *= 60;
#Afin d'arrondir, on découpe le resultat en 2 termes: ce qu'il y a avant le '.' et ce qu'il y a après le point et on met le tout dans un tableau
@tab = split(/\./, $deb_min);
#On affecte le nombre de minutes à la variable $deb_min qui ne sera pas réutilisée
$deb_min = $tab[0];
#On affecte le reste du nombre de minutes (0.80 dans ton exemple) à la variable $deb_sec
my $deb_sec = "0".".".$tab[1];
#On multiplie $deb_sec par 60 pour avoir la valeur exacte du nombre de secondes
$deb_sec *= 60;
#Afin d'arrondir, on découpe le resultat en 2 termes: ce qu'il y a avant le '.' et ce qu'il y a après le point
@tab = split(/\./, $deb_sec);
#On affecte le nombre de secondes à la variable $deb_sec qui ne sera pas réutilisée
$deb_sec = $tab[0];
print "\n=> Nom de l\'utilisateur:\t\t\t\t $utilisateur \n";
print "=> Heure de relevé de production:\t\t\t $hours_rel:$min_rel:$sec_rel \n";
print "=> Production totale entre le debut et la releve:\t $prod_tot \n";
print "=> Production par heure:\t\t\t\t $prod_by_hours \n";
#Je n'obtiens pas le meme résutat que toi car je n'arrondis pas mes heures et minutes dans les calculs
print "=> Heure de début de production:\t\t\t $deb_hours:$deb_min:$deb_sec \n";
#Pour faciliter le calcul du délai je passe tout en secondes
my $time_releve_production = $hours_rel*3600+$min_rel*60+$sec_rel;
my $time_debut_production = $deb_hours*3600+$deb_min*60+$deb_sec;
my $delai_en_sec = $time_releve_production - $time_debut_production ;
my $delai_hours = $delai_en_sec/3600;
@tab = split(/\./, $delai_hours);
$delai_hours = $tab[0];
my $delai_min = ($delai_en_sec - 3600*$delai_hours)/60;
@tab = split(/\./, $delai_min);
$delai_min = $tab[0];
my $delai_sec = ($delai_en_sec - 3600*$delai_hours -60*$delai_min);
print "\n=> La production a donc démarrée il y a $delai_hours heures $delai_min minutes $delai_sec secondes \n\n"; |
Partager