|
|
|
|
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.
|
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. |
|
Bonjour,
J'ai besoin d'un code javascript pour calculer le nombre de jours entre deux dates. |
|
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+ L'expérience instruit plus sûrement que le conseil. (André Gide) |
|
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. |
Résultats pour nombre de jours par mois entre deux dates
Résultats pour nombre de jours par mois entre deux dates
Résultats pour nombre de jours par mois entre deux dates