Obtener la fecha del día siguiente
Publicado: 2016-12-13 04:38 @234
Muy buenas.
Me están pidiendo que dada una fecha sea capaz de dar la fecha del día siguiente usando una subrutina del tipo acción. Yo he hecho una usando referencias que es capaz de hacerla pero no sé si es la forma correcta.
Otro problema que tengo es que, en los meses, si intento poner valores numéricos me da problema el último día del año: si pongo 31-12-4 me da 1-13-4.
Muchas gracias y perdón por las molestias
Este es el código con el mes con número
Este es el código con el mes con caracteres
Me están pidiendo que dada una fecha sea capaz de dar la fecha del día siguiente usando una subrutina del tipo acción. Yo he hecho una usando referencias que es capaz de hacerla pero no sé si es la forma correcta.
Otro problema que tengo es que, en los meses, si intento poner valores numéricos me da problema el último día del año: si pongo 31-12-4 me da 1-13-4.
Muchas gracias y perdón por las molestias
Este es el código con el mes con número
Using perl Syntax Highlighting
- sub nexdate {
- my ($day,$month,$year) = @_;
- if(($$month=~/1|3|5|7|8|10/) &&($$day < 31)){
- $$day = $$day+1; $$month=$$month;$$year=$$year;}
- elsif(($$month=~ /1|3|5|7|8|10/) && ($$day= 31)){
- $$day=1 , $$month = $$month+1,$$year=$$year;}
- elsif (($$month=~/4|6|9|11/i) && ($$day < 30)){
- $$day = $$day+1,$$month =$$month, $$year =$$year;}
- elsif (($$month=~/4|6|9|11/i) && ($$day = 30)){
- $$day =1,$$month =$$month +1, $$year =$$year;}
- elsif (($$month=~ /2/)&& ($$day <28)){
- $$day =$$day +1,$$month =$$month , $$year =$$year;}
- elsif(($$month=~ /2/) && ($$day=28)){
- $$day=1 , $$month = $$month+1,$$year=$$year;}
- elsif (($$month=~ /12/)&& ($$day <31)){
- $$day =$$day +1,$$month =$$month , $$year =$$year;}
- elsif (($$month=~ /12/)&& ($$day =31)){
- $$day =1,$$month=1, $$year=$$year+1;}
- else {print "La siguiente fecha es errónea: ";}
- }
- print "Enter the date :\n";
- print "day :";
- my $Day =<STDIN>;
- chomp $Day;
- print "month :";
- $Month =<STDIN>;
- chomp $Month;
- print "year :";
- $Year =<STDIN>;
- chomp $Year;
- nexdate(\$Day,\$Month,\$Year);
- print $Day,"-",$Month,"-",$Year;
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Este es el código con el mes con caracteres
Using perl Syntax Highlighting
- sub nexdate {
- my ($day,$month,$year) = @_;
- if(($$month=~/January|March|May|July|August|October/i) &&($$day < 31)){
- $$day = $$day+1; $$month=$$month;$$year=$$year;}
- elsif(($$month=~ /January|March|May|July|August|October/i) && ($$day= 31)){
- $$day=1 , $$month = $$month+1,$$year=$$year;}
- elsif (($$month=~/April|Juny|September|November/i) && ($$day < 30)){
- $$day = $$day+1,$$month =$$month, $$year =$$year;}
- elsif (($$month=~/April|Juny|September|November/i) && ($$day = 30)){
- $$day =1,$$month =$$month +1, $$year =$$year;}
- elsif (($month=~ /February/i)&& ($day <28)){
- $$day =$$day +1,$$month =$$month , $$year =$$year;}
- elsif(($$month=~ /February/i) && ($$day=28)){
- $$day=1 , $$month = $$month+1,$$year=$$year;}
- elsif (($$month=~ /December/i)&& ($$day <31)){
- $$day =$$day +1,$$month =$$month , $$year =$$year;}
- elsif (($$month=~ /December/i)&& ($$day==31)){
- $$day =1,$$month=January, $$year=$$year+1;}
- else {print "The next date isn't correct: ";}
- }
- print "Enter the date :\n";
- print "day: ";
- my $Day =<STDIN>,"\n";
- chomp $Day;
- print "month: ";
- $Month =<STDIN>,"\n";
- chomp $Month;
- print "year: ";
- $Year =<STDIN>;
- chomp $Year;
- nexdate(\$Day,\$Month,\$Year);
- print $Day,"-",$Month,"-",$Year;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4