A voir également:
- Nombre de jour entre deux dates
- Mise a jour chrome - Accueil - Applications & Logiciels
- Nombre de jours entre deux dates excel - Guide
- Mettre à jour ses pilotes - Guide
- Mise a jour windows 10 - Accueil - Mise à jour
- Deux ecran pc - Guide
13 réponses
Bonjour,
Je me suis posé la même question et voilà comment je m'en suis sorti
Dans mon tableau Excel
Date de début = colonne L
Date de fin = colonne M
Janvier : Colonne Q
Février: colonne R
Mars : colonne ?? :) S etc...
Tout d'abord j'ai mis en ligne 1 le 1er jour de chaque mois et ligne 2 le dernier jour du mois
Q1 = 01/01/2006
Q2 = 31/01/2006
(il suffit de les mettre en janvier et février et de faire glisser pour avoir premier et dernier dans chaque colonne suivante)
Ma base commence donc en ligne 3 et j'ai tapé la formule suivante en cellule Q3:
=MAX(SI($L3-Q$1<0;MIN(($M3-Q$1+1);Q$2-Q$1+1);SI($L3-Q$2>0;0;MIN(Q$2-$L3+1;$M3-$L3+1)));0)
Pour le reste du tableau copier/coller
Explication:
SI($L3-Q$1<0 : si date de début est inférieur au premier jour du mois
VRAI: MIN(($M3-Q$1+1);Q$2-Q$1+1): min de date fin -1er jour du mois et du nombre de jours dans le mois.
Ex: si date de fin = 16/02/06. En janvier Date fin -1er jour = 63, nb jour janvier = 31. la formule retourne 31
FAUX: SI($L3-Q$2>0: si date de début> dernier jour du mois:
VRAI: aucun jour dans le mois voulu donc 0 (ex date de début 16/02/06, en janvier 0 jours)
FAUX: MIN(Q$2-$L3+1;$M3-$L3+1))): mini de dernier jour du mois - date de début +1 ; date fin - date de début +1
Ex si début 04/02/06 et fin 16/02/06 formule retourne 13 jours
J'ai rajouté autour de ça Max (Formule; 0) pour éviter les nb jours négatifs car si la date de début est inférieure 1er jour du mois mais que la date de fin est aussi inférieure au 1er jour du mois, le calcul se fait en négatif (ce qui ne nous intéresse pas) donc dans ce cas: 0
Voilà, j'espère avoir été suffisamment clair.
Je me suis posé la même question et voilà comment je m'en suis sorti
Dans mon tableau Excel
Date de début = colonne L
Date de fin = colonne M
Janvier : Colonne Q
Février: colonne R
Mars : colonne ?? :) S etc...
Tout d'abord j'ai mis en ligne 1 le 1er jour de chaque mois et ligne 2 le dernier jour du mois
Q1 = 01/01/2006
Q2 = 31/01/2006
(il suffit de les mettre en janvier et février et de faire glisser pour avoir premier et dernier dans chaque colonne suivante)
Ma base commence donc en ligne 3 et j'ai tapé la formule suivante en cellule Q3:
=MAX(SI($L3-Q$1<0;MIN(($M3-Q$1+1);Q$2-Q$1+1);SI($L3-Q$2>0;0;MIN(Q$2-$L3+1;$M3-$L3+1)));0)
Pour le reste du tableau copier/coller
Explication:
SI($L3-Q$1<0 : si date de début est inférieur au premier jour du mois
VRAI: MIN(($M3-Q$1+1);Q$2-Q$1+1): min de date fin -1er jour du mois et du nombre de jours dans le mois.
Ex: si date de fin = 16/02/06. En janvier Date fin -1er jour = 63, nb jour janvier = 31. la formule retourne 31
FAUX: SI($L3-Q$2>0: si date de début> dernier jour du mois:
VRAI: aucun jour dans le mois voulu donc 0 (ex date de début 16/02/06, en janvier 0 jours)
FAUX: MIN(Q$2-$L3+1;$M3-$L3+1))): mini de dernier jour du mois - date de début +1 ; date fin - date de début +1
Ex si début 04/02/06 et fin 16/02/06 formule retourne 13 jours
J'ai rajouté autour de ça Max (Formule; 0) pour éviter les nb jours négatifs car si la date de début est inférieure 1er jour du mois mais que la date de fin est aussi inférieure au 1er jour du mois, le calcul se fait en négatif (ce qui ne nous intéresse pas) donc dans ce cas: 0
Voilà, j'espère avoir été suffisamment clair.
Chaque date possède une référence chiffrée.
Pour calculer le nombre de jours, il suffit de faire une soustraction.
= C1 - D1
Ca donne automatiquement le nombre de jour entre ces deux dates.
Pour calculer le nombre de jours, il suffit de faire une soustraction.
= C1 - D1
Ca donne automatiquement le nombre de jour entre ces deux dates.
Utilisateur anonyme
22 juil. 2008 à 02:42
22 juil. 2008 à 02:42
Bonjour,
Comme nous sommes sur le forum programmation, je poste ce petit code java qui peut-etre interessera d'autre personnes.
/**
* DECOMPTE EN JOURS MOIS PAR MOIS, A PARTIR D'UNE DATE DEBUT JUSQU'A UNE DATE FIN
*
* Le résultat est affiché par message info (showMessageDialog)
* ( EXEMPLE 4 : )
*
* ( <nombre de jours en > <nom_du_mois> <année> : <nbjours> )
* ( <nombre de jours en > <nom_du_mois> <année> : <nbjours> )
* ( ....................................................... )
*
* ( ------------------------------------------------------ ).
*
**/
/**
*
* LIMITATIONS PROVISOIRES:
*
* - Le nombre de lignes a afficher avec (showMessageDialog).
* - Il n'y a pas de controle date debut date fin.
* - L'annee fin ne doit pas etre > 1 a la date debut.
*
* Mais le principe existe.
*
**/
import java.io.*;
import java.util.GregorianCalendar;
import java.util.Calendar;
public class DecompteMoisParMoisEnJours
{
static int ex = 4;
// La table des noms des mois : tabmois[]
static String[] tabmois = {"janvier", "février", "mars", "avril", "mai", "juin",
"juillet", "août", "septembre", "octobre", "novembre", "décembre"};
public static String DecompteMoisParMoisEnJours()
{
// date debut
int aaD = 2006;
int mmD = 1;
int jjD = 15;
// date fin
int aaF = 2006;
int mmF = 4;
int jjF = 15;
int aa = 0;
int mm = 0;
int jj = 0;
aa = aaD;
jj = jjD;
String info = "";
for (int tours = 0; tours < 2; tours++)
{
if (tours == 0)
info+= "Date début 15/01/2006,\nDate fin 15/04/2006.\n\n";
else
info+= "Date début 15/12/2006,\ndate fin 15/03/2007.\n\n";
for (int i = 0; i < mmF; i++) // < mmF
{
mm = mmD + i;
if (mm == mmF) jj = jjF;
Calendar cal = new GregorianCalendar(aa, mm -1, jj); // les mois sont numerotes 0 a 11
int nbjours = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
int annee = cal.get(Calendar.YEAR);
int num_mois = cal.get(Calendar.MONTH);
int jour = cal.get(Calendar.DAY_OF_MONTH);
int nbre_jours = 0;
if (mm == mmD)
nbre_jours = (nbjours - jour) +1;
else
if (mm == mmF)
nbre_jours = jour;
else
{
nbre_jours = nbjours;
}
if (mm == 13)
{
mmD = 1;
aa = aaD +1;
i--;
}
info+= " nombre de jours en " + tabmois[num_mois] + " " + annee + " : "
+ nbre_jours + "\n"
+ "----------------------------------------------------------------" + "\n";
}
javax.swing.JOptionPane.showMessageDialog(null,info);
if (tours == 0)
{
// date debut
aaD = 2006;
mmD = 12;
jjD = 15;
// date fin
aaF = 2007;
mmF = 3;
jjF = 15;
info = "";
}
}
return "";
}
public static void main (String[] args)
{
DecompteMoisParMoisEnJours();
System.exit(0);
}
}
Cordialement.
Dan.
Comme nous sommes sur le forum programmation, je poste ce petit code java qui peut-etre interessera d'autre personnes.
/**
* DECOMPTE EN JOURS MOIS PAR MOIS, A PARTIR D'UNE DATE DEBUT JUSQU'A UNE DATE FIN
*
* Le résultat est affiché par message info (showMessageDialog)
* ( EXEMPLE 4 : )
*
* ( <nombre de jours en > <nom_du_mois> <année> : <nbjours> )
* ( <nombre de jours en > <nom_du_mois> <année> : <nbjours> )
* ( ....................................................... )
*
* ( ------------------------------------------------------ ).
*
**/
/**
*
* LIMITATIONS PROVISOIRES:
*
* - Le nombre de lignes a afficher avec (showMessageDialog).
* - Il n'y a pas de controle date debut date fin.
* - L'annee fin ne doit pas etre > 1 a la date debut.
*
* Mais le principe existe.
*
**/
import java.io.*;
import java.util.GregorianCalendar;
import java.util.Calendar;
public class DecompteMoisParMoisEnJours
{
static int ex = 4;
// La table des noms des mois : tabmois[]
static String[] tabmois = {"janvier", "février", "mars", "avril", "mai", "juin",
"juillet", "août", "septembre", "octobre", "novembre", "décembre"};
public static String DecompteMoisParMoisEnJours()
{
// date debut
int aaD = 2006;
int mmD = 1;
int jjD = 15;
// date fin
int aaF = 2006;
int mmF = 4;
int jjF = 15;
int aa = 0;
int mm = 0;
int jj = 0;
aa = aaD;
jj = jjD;
String info = "";
for (int tours = 0; tours < 2; tours++)
{
if (tours == 0)
info+= "Date début 15/01/2006,\nDate fin 15/04/2006.\n\n";
else
info+= "Date début 15/12/2006,\ndate fin 15/03/2007.\n\n";
for (int i = 0; i < mmF; i++) // < mmF
{
mm = mmD + i;
if (mm == mmF) jj = jjF;
Calendar cal = new GregorianCalendar(aa, mm -1, jj); // les mois sont numerotes 0 a 11
int nbjours = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
int annee = cal.get(Calendar.YEAR);
int num_mois = cal.get(Calendar.MONTH);
int jour = cal.get(Calendar.DAY_OF_MONTH);
int nbre_jours = 0;
if (mm == mmD)
nbre_jours = (nbjours - jour) +1;
else
if (mm == mmF)
nbre_jours = jour;
else
{
nbre_jours = nbjours;
}
if (mm == 13)
{
mmD = 1;
aa = aaD +1;
i--;
}
info+= " nombre de jours en " + tabmois[num_mois] + " " + annee + " : "
+ nbre_jours + "\n"
+ "----------------------------------------------------------------" + "\n";
}
javax.swing.JOptionPane.showMessageDialog(null,info);
if (tours == 0)
{
// date debut
aaD = 2006;
mmD = 12;
jjD = 15;
// date fin
aaF = 2007;
mmF = 3;
jjF = 15;
info = "";
}
}
return "";
}
public static void main (String[] args)
{
DecompteMoisParMoisEnJours();
System.exit(0);
}
}
Cordialement.
Dan.
pwnya
Messages postés
15
Date d'inscription
vendredi 18 septembre 2009
Statut
Membre
Dernière intervention
25 décembre 2011
10
26 août 2011 à 19:10
26 août 2011 à 19:10
Avez-vous tous une formation en programmation, et si oui laquelle??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ce post répond tout à fait à ma problématique dans la démarche, la réponse de Guillaume est pertinente, mais quelqu'un aurait-il une idée de comment faire la meme chose mais avec des jours ouvrés:
Calculer le nombre de jours ouvrés par mois entre 2 dates
Calculer le nombre de jours ouvrés par mois entre 2 dates
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 9/10/2010 à 11:46
Modifié par michel_m le 9/10/2010 à 11:46
Bonjour
Ci join maquette avec décompte des jours ouvrés. valable si date début et date fin dans la m^me année civile
si ce n'est déjà fait active l'utilitaire d'analyse (outils-macros complémentaires) pour utiliser les fonctions nb;jours;ouvres et fin.mois
http://www.cijoint.fr/cjlink.php?file=cj201010/cij83bRU1X.xls
cette question était + "bureautique" que "programmation";lors de ta prochaine question, n'oublie pas de préciser le logiciel et d'être précis; d'avance merci ;-)
Ci join maquette avec décompte des jours ouvrés. valable si date début et date fin dans la m^me année civile
si ce n'est déjà fait active l'utilitaire d'analyse (outils-macros complémentaires) pour utiliser les fonctions nb;jours;ouvres et fin.mois
http://www.cijoint.fr/cjlink.php?file=cj201010/cij83bRU1X.xls
cette question était + "bureautique" que "programmation";lors de ta prochaine question, n'oublie pas de préciser le logiciel et d'être précis; d'avance merci ;-)
Voici mon problème:
Une plage de données:
100
155
158
456
800
Combien de cellules y-a-t-il entre 100 et 500?
Avez-vous une solution à mon problème?
Merci.
Une plage de données:
100
155
158
456
800
Combien de cellules y-a-t-il entre 100 et 500?
Avez-vous une solution à mon problème?
Merci.
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
21 juil. 2008 à 15:09
21 juil. 2008 à 15:09
Messieurs mahl_doumham et Vivien
Il serait préférable que vous créiez votre propre « topik » message personnel. Cela rendra le poste (ici) plus compréhensible, et nous pourrons traiter vos souci avec plus d’efficacité.
Donc
Faites ce qui suit, SVP
Merci
http://img139.imageshack.us/img139/8973/notdistrimq9.jpg
http://pageperso.aol.fr/balltrap34/demofairesontmessage.htm
http://perso.orange.fr/rginformatique/section%20virus/demofairesontmessage.htm
A+
EDIT erreur pour Vivien, tient pas compte de ma remarque c'est pour Eric
Tu a raison dans ta réponse.
A+
Il serait préférable que vous créiez votre propre « topik » message personnel. Cela rendra le poste (ici) plus compréhensible, et nous pourrons traiter vos souci avec plus d’efficacité.
Donc
Faites ce qui suit, SVP
Merci
http://img139.imageshack.us/img139/8973/notdistrimq9.jpg
http://pageperso.aol.fr/balltrap34/demofairesontmessage.htm
http://perso.orange.fr/rginformatique/section%20virus/demofairesontmessage.htm
A+
EDIT erreur pour Vivien, tient pas compte de ma remarque c'est pour Eric
Tu a raison dans ta réponse.
A+
Salut
Je sais pas si tu en as encore besoin.
Sous excel je n'ai pas trouvé de formule par contre j'ai fait un test logique qui pour le moment marche à merveille.
Je sais pas si tu en as encore besoin.
Sous excel je n'ai pas trouvé de formule par contre j'ai fait un test logique qui pour le moment marche à merveille.
Dans excel 2007:
FRACTION.ANNEE(date_début;date_fin;base)
Important Les dates doivent être entrées en utilisant la fonction DATE ou sous la forme de résultats d'autres formules ou fonctions. Par exemple, utilisez DATE(2008,5,23) pour le 23e jour du mois de mai 2008. Des problèmes peuvent survenir si les dates sont entrées sous forme de texte.
date_début est une date qui représente la date de début.
date_fin est une date qui représente la date de fin.
base représente le type de la base de comptage des jours à utiliser.
Base Comptage des jours
0 ou omis 30/360 US (NASD)
1 Réel/réel
2 Réel/360
3 Réel/365
4 30/360 européen
*** Tu dois multiplier ton résultat par 365 puisqu'il te le donne en fraction.
FRACTION.ANNEE(date_début;date_fin;base)
Important Les dates doivent être entrées en utilisant la fonction DATE ou sous la forme de résultats d'autres formules ou fonctions. Par exemple, utilisez DATE(2008,5,23) pour le 23e jour du mois de mai 2008. Des problèmes peuvent survenir si les dates sont entrées sous forme de texte.
date_début est une date qui représente la date de début.
date_fin est une date qui représente la date de fin.
base représente le type de la base de comptage des jours à utiliser.
Base Comptage des jours
0 ou omis 30/360 US (NASD)
1 Réel/réel
2 Réel/360
3 Réel/365
4 30/360 européen
*** Tu dois multiplier ton résultat par 365 puisqu'il te le donne en fraction.
Salut,
je vois que le sujet date un peu, mais pour ceux qui passerai ici avec le meme problème, j'y ai été confronté également et j'ai réussi à le résoudre sans macro. vous pouvez consulter ma solution sur ce post, avec fichier joint....
http://www.commentcamarche.net/forum/affich-24745657-excel-nombre-de-jours-entre-deux-dates
je vois que le sujet date un peu, mais pour ceux qui passerai ici avec le meme problème, j'y ai été confronté également et j'ai réussi à le résoudre sans macro. vous pouvez consulter ma solution sur ce post, avec fichier joint....
http://www.commentcamarche.net/forum/affich-24745657-excel-nombre-de-jours-entre-deux-dates
mahl_doumham
Messages postés
7
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
27 septembre 2008
21 juil. 2008 à 14:18
21 juil. 2008 à 14:18
Bonjour,
J'ai besoin d'un code javascript pour calculer le nombre de jours entre deux dates.
J'ai besoin d'un code javascript pour calculer le nombre de jours entre deux dates.
5 juil. 2007 à 11:51
DATEDIF(date la plus ancienne;date la moins ancienne,"X")
A la place de X il faut mettre
d pour jours, m pour mois et y pour an.
http://www.simple-excel.com/excel-fonctions-dates-heures.htm
Modifié par jawed83 le 11/04/2013 à 17:39