Fonction quirenvoie la date du prochain jour

Nicolas Cartron -  
Bobinours Messages postés 2903 Statut Membre -
Bonjour,

j'ai beau chercher je ne trouve pas ce que je veux :

Je souhaite trouver un moyen pour récupérer la date de demain :
exemple : si nous sommes le 30/09/2002, cette fonction me renverra
01/10/2002, ...

Merci.
A voir également:

7 réponses

teebo Messages postés 33570 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Salut, tu es en quel langage, sinon on peut rien dire nous, les fonctions dependent forcement du langage, mais le principe general est d ajouter 1...

ö,ö
\_/
0
blux Messages postés 4939 Date d'inscription   Statut Modérateur Dernière intervention   3 367
 
Salut,

dans quel langage ?

VB, C, C++, C#, J#, Java, PHP, DELPHI... ? :-)

A+ Blux            "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"
0
cartron
 
oups, désolé, c'est du Perl.

Le principe du +1 ne me va pas, puisque je risque de me retrouver avec
des 30 fevrier ou autres betises...

au pire j'ai trouvé une autre soluce mais bon...
0
Marden Messages postés 1075 Statut Membre 210
 
Tu ne peux pas couper aux tests des années bissextiles du nombre de jours dans le mois. A titre d'aide, quelques instructions en JS :

var jours = new Array() ;
jours[0] = new Array(31,28,31,30,31,30,31,31,30,31,30,31) ;
jours[1] = new Array(31,29,31,30,31,30,31,31,30,31,30,31) ;
/* ------------------------------------------------------ */
function bissex(an) {
ret = (an%400 == 0 ) | (( an%4 == 0 ) & ( an%100 != 0 )) ;
return (ret?1:0)
}
// décomposer la date du jour en (annee,mois,jour)
bis = bissex(annee) ;
/* ------------------------------------------------------ */
jour++
if ( jour > jours[bis][mois-1] ) {
jour = 1 ;
mois++
if ( mois > 12 ) {
mois = 1 ;
annee++ ;
}
}
// recomposer la date
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
En Perl, y'a pas une fonction qui convertit en nombre de jour depuis une date donné, comme cela se voit en PHP, VB ou autre?

Kalamit,
Je ponce donc j'essuie
0
Bobinours Messages postés 2903 Statut Membre 504
 
Arf :oD J'ai écrit le code pour la date d'hier, mais pas pour le lendemain :oD

sub getHier
{
my $date = shift;
my ($jour, $mois, $annee) = ($date =~ /(\d{2})-(\d{2})-(\d{4})/);
my ($hierJour, $hierMois, $hierAnnee) = ($jour, $mois, $annee);

if ($jour-1 <= 0) {

# Decrementation du JOUR
if (($mois == 1) || ($mois == 2) || ($mois == 4) || ($mois == 6) || ($mois == 8) || ($mois == 9) || ($mois == 11) ) {$hierJour = 31;}
elsif (($mois) == 3)
{
if ( (( $annee % 4 == 0 ) && ( $annee % 100 != 0 )) || ( $annee % 400 == 0 )) {
$hierJour = 29;
}
else {
$hierJour = 28;
}
}
else {$hierJour = 30;}

# Decrementation du MOIS et ANNEE
if ($mois <= 1) {
$hierMois = 11;
$hierAnnee = $annee-1;
}
else {$hierMois = $mois-1;}
}
else {$hierJour = $jour-1;}

return sprintf("%02d-%02d-%04d", $hierJour, $hierMois, $hierAnnee);
}

print getHier('01-03-2002'), "\n";

-= Bobinours =-
Une Contrée? http://bobin.underlands.org/cgi-bin/belette.pl
0
Bobinours Messages postés 2903 Statut Membre 504
 
Bein voila... Merci beaucoup à Marden pour son algo :o)

J'avais également oublié de gérer les années bissextiles dans ma fonction getHier(), grace à toi, c'est réparé.

sub getDemain
{
# Recuperation et décomposition de la date du jour en (jour, mois, annee)
my $date = shift;
my ($jour, $mois, $annee) = ( $date =~ m[(\d{2})/(\d{2})/(\d{4})] );

my @jours;
$jours[0] = [31,28,31,30,31,30,31,31,30,31,30,31];
$jours[1] = [31,29,31,30,31,30,31,31,30,31,30,31];

# ------------------------------------------------------ #
sub bissex
{
my $annee = shift;
my $ret = (( $annee%4 == 0 ) && ( $annee%100 != 0 )) || ( $annee%400 == 0 );
return ($ret ? 1 : 0);
}

my $bis = bissex($annee) ;
# ------------------------------------------------------ #

$jour++;
if ( $jour > $jours[$bis][$mois-1] ) {
$jour = 1;
$mois++;
if ( $mois > 12 ) {
$mois = 1;
$annee++;
}
}

return sprintf("%02d/%02d/%04d", $jour, $mois, $annee);
}

print getDemain('31/12/2000'), "\n";
0