• Publicidad

Comparar fecha con variable

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Comparar fecha con variable

Notapor charlygarza » 2013-05-30 20:24 @892

Esto es lo que tengo que realizar hasta aquí. Todo bien, lo único es que quisiera que leyera varias pasadas y fuera acumulando el total de las ventas perdidas por errores... El error es como si no regresara al primer goto.

Que la transacción sea aprobada
Que la transacción sea suspendida por las siguientes causas:
* Fecha de emisión caducada
* Rebaso el límite de crédito
* No es posible obtener autorización de tarjeta utilizada
También existe la posibilidad de pagar en efectivo cuando no sea posible pagar con tarjeta de crédito
Realizar el programa que permita evaluar estas condiciones y llevar una totalización de las ventas que se pierden por tal situación

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. ($sec,$min,$hr,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
  4.  
  5. $mon++;
  6. $year += 1900;
  7. $lcredito = 1000;
  8. $pinaut = 'abc';
  9.  
  10. print "FECHA HOY " . $mday . "-" . $mon . "-" . $year . "\n";
  11. print "\n";
  12.  
  13.  
  14. SEGUNDO:
  15. for($x=1; $x<=3; $x=$x+1){
  16.  
  17.     print "introduzca datos de la tarjeta  \n";
  18.     print "ingrese numero de tarjeta: ";
  19.     chomp( $numero = <STDIN> );
  20.    
  21.      print "ingrese monto compra: ";
  22.       chomp( $monto = <STDIN> );
  23.      if ($monto > $lcredito)  {
  24.        print"su transaccion no se puede realizar limite de credito sobrepasado \n";
  25.         $total3=$total3 + $monto;
  26.           goto PRIMERO;
  27.       }
  28.  
  29.      print "ingrese fecha emision: ";
  30.      print "ingrese dia:";
  31.      chomp( $dia = <STDIN> );
  32.      print "ingrese mes:";
  33.      chomp( $mes = <STDIN> );
  34.      print "ingrese anio:";
  35.      chomp( $anio = <STDIN> );
  36.       if ($anio < $year)  {
  37.        print"su transacción no se puede realizar tarjeta con fecha caducada \n";
  38.        $total1=$total1 + $monto;
  39.        goto PRIMERO;
  40.       }
  41.        
  42.      print "ingrese pin autorización: ";
  43.      chomp( $autorizacion = <STDIN> );
  44.      if ($autorizacion eq $pinaut)  {
  45.        print"su transacción no se puede realizar pin autorización incorrecto \n";
  46.         $total2=$total2 + $monto;
  47.           goto PRIMERO;
  48.       }
  49.     print "\n";
  50. }
  51.  
  52. PRIMERO:
  53.  
  54. print"desea ingresar otro dato: ";
  55.  chomp( $opcion = <STDIN> );
  56.  if (lc($opcion eq 'si'))
  57.  {
  58.   goto SEGUNDO;
  59.  }
  60.  else{
  61.  
  62. $totalt = $total1 +$total2+$total3;
  63. print "total ventas perdidas es $totalt";
  64. print "\n";
  65.  
  66. }
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4
charlygarza
Perlero nuevo
Perlero nuevo
 
Mensajes: 26
Registrado: 2013-05-11 13:22 @598

Publicidad

Re: Comparar fecha con variable

Notapor danimera » 2013-05-30 20:44 @905

Viejo, una forma fácil de trabajar con fechas es usando el módulo Date::Calc, de por sí ya viene por ahí instalado...

Haciendo un delta de días, uno puede saber los días que han pasado y, claro, con eso sabremos si es mayor a la fecha o menor.

Delta_Days

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.       $Dd = Delta_Days($year1,$month1,$day1,
  2.                        $year2,$month2,$day2);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


El módulo Date::Calc es vital para el trabajo con fechas en Perl.

http://search.cpan.org/~stbey/Date-Calc ... e/Calc.pod
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados