Dans la programmation Perl, parce que les dates peuvent avoir des caractères tels que des espaces, des virgules ou des lettres , vous ne pouvez pas simplement prendre deux dates et soustraire l'un de l' autre . Vous avez besoin de convertir en nombres purs avant de pouvoir obtenir la différence entre les deux , puis retourner cette valeur à l'utilisateur. Convertir les deux dates en temps époque , qui est un calcul du nombre de secondes qui se sont écoulées depuis le 1er janvier 1970. Cela vous permet de soustraire une valeur à la date de l'autre pour obtenir la différence. Instructions
1
Ouvrez un nouveau fichier programme Perl. Tapez le code suivant : .
Utilisation Time :: Local ;
Ce module contient la date et l' heure des fonctions dont vous avez besoin pour calculer les valeurs de temps
2
Tapez la commande suivante Code :
print " Saisir le jour (1-31) :";
$ jour = <> ;
print " Entrez le mois (1-12) : »;
$ mois = <> ;
$ mois = $ mois - 1;
print" Entrez année : ";
$ année = <> ;
$ annee = $ l'an - 1900
Ces lignes inviter l'utilisateur à entrer un jour du mois , le mois et l'année, tout comme des entiers . Vous devez diminuer la valeur d'un mois parce que la fonction " timelocal " utilise les valeurs mois de zéro à 11 , pas un seul à 12. En outre, vous devez soustraire 1900 de la valeur de l'année pour cette fonction ainsi . Vous pouvez programmer une erreur code de vérification pour s'assurer que l'utilisateur entre une valeur propre , ou si vous voulez permettre à un utilisateur d'entrer un nom de mois, comme «Janvier», programme une fonction pour convertir cette valeur à zéro.
3
Tapez le code suivant :
$ time = timelocal (0,0,0 , $ jour , $ mois , $ an);
Cela crée une variable appelée $ temps qui appelle la fonction timelocal pour convertir la date soumis par les utilisateurs en temps époque . Les trois premiers paramètres sont tous des zéros parce qu'ils représentent pour les secondes, minutes et heures . Vous pouvez demander à l'utilisateur de ces valeurs ainsi si vous voulez. La fonction timelocal renvoie une erreur si une date n'existe pas, comme Mars 35 , voire 31 Juin, alors assurez -vous que vos chèques de code pour ces possibilités
4 Type de
le code suivant : .
$ curtime = temps ;
$ diff = $ curtime - $ temps ;
la première ligne crée une variable appelée $ curtime qui utilise la fonction de temps pour retourner la date actuelle dans une époque temps. La deuxième ligne crée une variable appelée $ diff qui obtient la différence de la date courante moins la date soumis par les utilisateurs . Le résultat entier est le nombre de secondes qui existent entre les deux dates. Si le nombre est positif , alors la date de l'utilisateur vient avant la date actuelle. Si le nombre est négatif , il vient après
5
Tapez le code suivant : .
If ($ diff > 0) {
$ diff = int ( $ diff /60/60 /24);
impression
$ diff . " Jours se sont écoulés depuis la date que vous avez entrée . " ;
} Else {
$ diff = abs ( int ( $ diff /60/60 /24) ) ;
< p > Imprimer "Il ya" . $ diff . " Plus de jours jusqu'à la date que vous avez entrée . " ; }
Si des contrôles de fonction pour voir si la date soumis par les utilisateurs est avant ou après la date du jour , juste pour savoir quelle déclaration à imprimer à l'écran . Dans les deux cas , la valeur $ diff convertit de secondes en jours, et puis à un nombre entier d'un flotteur ( pour éviter d'imprimer plusieurs décimales ) . Si la valeur est négative , la fonction ABS devient la valeur absolue , tournant essentiellement le nombre négatif en un nombre positif . Par exemple, " -15 jours » devient «15 jours ».
6
Enregistrez et exécutez le programme Perl.