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) ) ; 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.
|