j'ai besoin de coder un calendrier avec les numéros de semaine. Certaines années ont 53 semaines, et les autres 52. Empiriquement j'ai trouvé un rythme pour ces semaines: tous les 5,5 ans, cad on saute 5 ans, et puis on saute 4 ans, ce qui donne un rythme de 2 années de 53 semaines tous les 11 ans. On peut trouver des infos officielles sur ça? j'ai trouvé les années à 53 semaines suivantes: 1970, 1976, 1981, 1987, 1992... ce qui doit donc continuer en 1998, 2003, 2009 c'est correct d'après vous? Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
En clair tu cherches un algo qui génère un calendrier perpétuel ? On doit pouvoir trouver très facilement ça sur Internet. Je ne pense pas que ce soit des algorithmes obscurs et brevetés, vu qu'on trouve des calendriers perpétuels dans tous les appareils d'aujourd'hui (PDA, téléphones, montres, PC). Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 : www.ti-fr.com Quelques idées personnelles ici. |
Attention aux années bissextiles sautées par le calendrier grégorien (1900, 2100, ...). |
Kevin > oui, je sais, une année est bissextile si elle est multiple de 4, sauf si elle est multiple de 100, mais quand même si elle est multiple de 400. Pas de souci, là. J'utilise des fonctions PHP genre localtime et mktime pour faire les conversions, au moins dans mon prototype privé. Edité par squalyl le 26-09-2007 à 13:31:23.Par contre, oui, je veux faire un calendrier style windows mobile ou téléphone, donc je dois me synchroniser sur les semaines de 7 jours, qui commencent au petit bonheur en fait v essayer de googler, j'espérais juste que qn pourrait me répondre si c'est un truc connu edit: quelques idées ici, il calcule le nb de semaines de chaque mois http://www.javascriptfr.com/code.aspx?ID=32185
function Sem(A,M,J)
{
date.setYear(A);
date.setMonth(M);
date.setDate(J);
date2=new Date(A,0,1);
x=1;
//Cherche le premier Lundi de l'année
do
{
date2.setDate(x);
x++;
}
while(date2.getDay()!=1);
temps=date.getTime()-date2.getTime()+24*60*60*1000;
sem=temps/(1000*60*60*24*7);
return Math.ceil(sem);
} Apparemment la semaine 1 est celle qui contient le premier lundi de l'année, c'est plus simple, je vais tester. Edit, oui, la semaine 1 est bien celle qui contient le premier lundi de l'année Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
squalyl > ça ne marchera pas, pourquoi tu essayes de trouver un rythme empirique ? (en vrai il y a bien une période mais a priori c'est 400 ans Qu'est-ce que tu appelles une année avec 53 semaines, tu veux dire une année avec 53 lundis ? (ou avec 53 dimanches ? certains font commencer la semaine le dimanche ^^) les infos officielles sont qu'une année normale fait 52 semaines et un jour, une année bissextile 52 semaines et deux jours. Les règles pour trouver les années bissextiles (post-1581) sont : une année est bissextile si son numéro est un multiple de 4 *sauf* si c'est un multiple de 100 et pas de 400. Ainsi l'année 1600 était bissextile, 1700, 1800 et 1900 ne l'ont pas été, mais l'an 2000 oui. edit : cross, les semaines de 7 jours ne commencent pas au petit bonheur Forum Cultures du monde — forum littéraire Membrane fondatrice de la confrérie des artistes flous. L'univers est-il un dodécaèdre de Poincaré ? (``·\ powaaaaaaaaa ! #love# |
nan, mais on a crossé: je vais d'abord voir si la semaine 1 de l'année est celle qui contient le premier lundi. C'est facile à vérifier avec mon pda ou mon tel! edit: cette assertion a l'air de fonctionner sur toutes les années entre 1970 et 2010. Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
Regarde c'est simple : le premier janvier 2007 est un lundi. Tu peux partir de là. Edité par Sally le 26-09-2007 à 14:38:49.Donc tu vas avoir 53 lundis en 2007 car le dernier jour sera aussi un lundi (le premier et le dernier jour sont le même dans le cas d'une année simple). Le premier janvier 2008 sera un mardi, l'année est bissextile donc le dernier jour sera un mercredi. Le premier janvier 2009 sera un jeudi. En 2010 ce sera un vendredi. En 2011 un samedi. En 2012 un dimanche. 2012 sera bissextile donc elle se terminera un lundi, et donc il y aura de nouveau 53 lundis en 2012. 2013 commencera un mardi, etc. ton année contient 53 lundis si et seulement si elle commence un lundi *ou* elle commence un dimanche et est bissextile recross... tu veux dire qu'avant le premier lundi on est dans la semaine 0 ? mais ce que tu voulais savoir c'est s'il y a une semaine n° 53, non ? Forum Cultures du monde — forum littéraire Membrane fondatrice de la confrérie des artistes flous. L'univers est-il un dodécaèdre de Poincaré ? (``·\ powaaaaaaaaa ! #love# |
heu, trouver une semaine 53 je peux le faire, si je connais la date du début de la semaine 1 suivante mais ton idée est pratique aussi, j'aime bien on va voir, merci en tout cas Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
ah non Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
C'est parce que les gens donnent 2 numéros à la même semaine si elle entame 2 années. |
mais non, pas possible en tout cas, je n'arrive pas à trouver un critère pour obtenir la date du premier jour de la semaine 1. pourtant, ça devrait être possible ! A moins que ça marche vraiment comme j'ai trouvé, un point de repère et une semaine de plus tous les 5 ou 6 ans. Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
j'ai trouvé http://www.univ-lemans.fr/~hainry/articles/semaine.html Si la première semaine de l’année est incomplète (c’est le cas six fois sur sept ; quand le premier janvier n’est pas un lundi), elle est numérotée 1 dès lors qu’elle a au moins quatre jours, 0 sinon. J'y avais pensé, mais j'ai pas exploré plus loin cette voie. je teste. Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
ben l'algo est simple suffit de savoir pour un jour précis dans le passé (par exemple 1/1/1900) tu compte le nombre de jour entre 1/1/1900 et le début de l'année que tu veux tu fait nombre_de_jour%7 pour connaitre le n° du jour (0 lundi, 1 mardi etc..) et ensuite tu sais quel jour c'est suffit de calculer combien de jour il manque pour aller a "lundi" d'apres et tu as ta date... |
Il y a un truc que j'ai pas dû comprendre, comment tu numérotes une semaine qui est à cheval sur deux ans ? Là par exemple le 31 décembre sera un lundi, premier jour de la semaine n° 53 ; mais les six autres jours de la semaine seront en 2008. Donc si tu veux juste regarder les semaines de l'année 2008, où places-tu ces six jours ? dans une semaine n° 0 ? ou est-ce que tu considères que comme la semaine a commencé en 2007 ils appartiennent en fait à l'année 2007 ? (cette dernière possibilité me semble étrange si tu veux le calendrier d'une année donnée...) Si tu veux avoir tous les jours de l'année et que tu places ceux qui sont avant le premier lundi dans une semaine n° 0, alors presque toutes les années auront 53 semaines en comptant cette éventuelle semaine 0. En effet, dès que l'année ne commence pas un lundi, tu auras une semaine n° 0, et dans le cas où l'année commence un lundi (comme en 2007, où il n'y a donc pas de semaine 0), il y a une semaine n° 53. Mais il y a un cas très précis où tu vas te retrouver avec à la fois une semaine 0 et une semaine 53 (donc 54 semaines en tout — dont deux d'un seul jour squalyl (./7) :Ben si tu connais le début de la semaine 1 suivante tu peux trouver la dernière semaine d'une année, mais ça ne te dit pas si c'est la n° 52 ou la n° 53, enfin pas sans calcul ^^ (bon bien sûr si tu connais aussi la semaine 1 précédente tu peux faire la différence et diviser par 7 mais bon edit : sextuple cross Forum Cultures du monde — forum littéraire Membrane fondatrice de la confrérie des artistes flous. L'univers est-il un dodécaèdre de Poincaré ? (``·\ powaaaaaaaaa ! #love# |
squalyl (./11) :OK (bon il est faux que ça arrive six fois sur sept, enfin statistiquement c'est vrai mais il n'y a pas une période de 7 ans, mais bon...) Bon ça change pas grand chose à ce que je viens de dire, il reste vrai que presque toutes les années ont 53 semaines, simplement ces semaines seront numérotées de 0 à 52 si l'année commence un vendredi, un samedi ou un dimanche, et de 1 à 53 si elle commence un lundi, un mardi, un mercredi ou un jeudi. Le cas particulier de l'année bissextile commençant un dimanche reste, avec ses 54 semaines numérotées de 0 à 53. Forum Cultures du monde — forum littéraire Membrane fondatrice de la confrérie des artistes flous. L'univers est-il un dodécaèdre de Poincaré ? (``·\ powaaaaaaaaa ! #love# |
voila enfin, quelle que soit la manière de le dire (semaines incomplètes toussa...) les algos de l'univ du mans dont j'ai donné la page fonctionnent. Ils me donnent la bonne date pour la semaine 1. merci de ces échanges constructifs Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
squalyl (./11) : |
en effet, mais bon, tous les calendriers que je connais numérotent les semaines de la même façon, donc même si c'est space, ça doit bien être ça Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
Sally (./14) : Euh statistiquement c'est faux aussi, la probabilité exacte est multiple de 1/400 « The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais) |
en fait je me suis aperçu après que c'était faux aussi mais j'ai eu la flemme d'éditer ^^ Forum Cultures du monde — forum littéraire Membrane fondatrice de la confrérie des artistes flous. L'univers est-il un dodécaèdre de Poincaré ? (``·\ powaaaaaaaaa ! #love# |
le truc le plus drôle que je remarque c'est que par exemple, la dernière semaine de 1984 a deux numéros: 53 et 1 Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
J'ai rien compris Et sinon c'est la question que je t'ai posée il y a 15 posts non ? sur comment tu numérotes les semaines à cheval sur deux années, c'est logique qu'elles aient deux numéros différents selon l'année que tu considères ; mais du coup je ne comprends pas pourquoi 1984 aurait deux semaines "1" : la dernière semaine ne porte le numéro 1 qu'en 1985... Forum Cultures du monde — forum littéraire Membrane fondatrice de la confrérie des artistes flous. L'univers est-il un dodécaèdre de Poincaré ? (``·\ powaaaaaaaaa ! #love# |
oué en fait y'a 3 jours dans la semaine 52 et 4 jours dans la semaine 1 de 1985, mais c'est sur la même ligne de calendrier... (brayf) Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
Je ne comprends pas trop le problème sur le numéro des semaines. Qu'est-ce qui est compliqué ou illogique de numéroter la semaine dans l'année où elle a le plus de jours ? C'est bien défini dans l'ISO 8601:1988. squalyl (./11) :Je trouve leurs formules vraiment trop moches, elles ne fonctionnent plus après 2099. |
pourquoi pas après 2099? Et sinon merci pour l'ISO, comme ça c'est fixé http://en.wikipedia.org/wiki/ISO_8601#Week_dates Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
squalyl (./11) :De ça, j'en ai déduit un critère sympa Soit J le premier jeudi de l'année, il tombera forcément entre le 1er et le 7 janvier, inclus. Soit S la semaine, allant du lundi au dimanche, qui contient J. Si J tombe le 4, le 1er est un lundi, donc on commence l'année par une semaine complète qui sera numérotée 1, donc S=1. Si J tombe le 5, le 6 ou le 7, on a au début de l'année, juste avant S, une semaine incomplète comportant 1, 2 ou 3 jours et qui sera donc numérotée 0, donc S=1. Si J tombe le 1er, le 2 ou le 3, S est une semaine incomplète comportant 4, 5 ou 6 jours et qui sera donc numérotée 1, donc S=1. Conclusion : la semaine 1 est celle qui contient le premier jeudi de l'année. C'est peut-être un moyen de simplifier la recherche de la semaine 1, non ? Ce que l’on conçoit bien s’énonce clairement, / Et le code pour l’écrire arrive aisément. Hâtez-vous lentement ; toujours, avec méthode, / Vingt fois dans l’IDE travaillez votre code. La perfection est atteinte, non pas lorsqu’il n’y a plus rien à ajouter, mais lorsqu’il n’y a plus rien à retirer. You don't use science to show that you're right, you use science to become right. |
purée alors là, super merci Nspire wiki CONDUCTEUR Va-et-vient Des QUATRE MANCHE AVEC DES DIODES |
(tu lis pas les liens que tu postes toi-même, squalyl ? Forum Cultures du monde — forum littéraire Membrane fondatrice de la confrérie des artistes flous. L'univers est-il un dodécaèdre de Poincaré ? (``·\ powaaaaaaaaa ! #love# |