Fonction quirenvoie la date du prochain jour
Nicolas Cartron
-
Bobinours Messages postés 2903 Statut Membre -
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.
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:
- Fonction quirenvoie la date du prochain jour
- Fonction si et - Guide
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mettre a jour chromecast - Accueil - Guide TV et vidéo
- Comment mettre à jour ses pilotes - Guide
7 réponses
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...
ö,ö
\_/
ö,ö
\_/
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"
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"
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...
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...
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
Kalamit,
Je ponce donc j'essuie
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
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
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";
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";