Jump to content

Calendrier en C


Recommended Posts

Alors si tu veux faire un calendrier vraiment complet et exact t'es mal barré, y'a des bouquins entiers de formules pour déterminer quel jour de la semaine tombe à quelle date, gérer les années bissextiles et les cas particuliers, etc...

Mais en cherchant bien ça doit se trouver sur :google:

Link to comment
Share on other sites

Perso j'utilise le calendrier des controles par défaut de MS : tu appelles CreateWindowEx avec MONTHCAL_CLASS.

Par exemple (lors de l'initialisation de ton application) :

#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
...
HWND WINAPI CreerCalendrier()
{
  HWND hwnd;
  RECT rc;
  INITCOMMONCONTROLSEX icex;
//Chargement de la classe
  icex.dwSize = sizeof(icex);
  icex.dwICC  = ICC_DATE_CLASSES;
  InitCommonControlsEx(&icex);

  // Creation du calendrier
  hwnd = CreateWindowEx(0,
                    MONTHCAL_CLASS,
                    "",
                    WS_BORDER | WS_CHILD | WS_VISIBLE | MCS_DAYSTATE,
                    0,0,0,0, 
                    mainHwnd,
                    NULL,
                    mainHinst,
                    NULL);

  // Pour avoir la taille min pour afficher le calendrier dans la fenetre
  MonthCal_GetMinReqRect(hwnd, &rc);

  // Redimensionne le calendrier avec les valeurs obtenues precedemment
  SetWindowPos(hwnd, NULL, 10,10,
               10 + rc.right, 10 + rc.bottom,
               SWP_NOZORDER);

  // Couleurs :
  MonthCal_SetColor(hwnd, MCSC_BACKGROUND, RGB(175,150,255));
  MonthCal_SetColor(hwnd, MCSC_MONTHBK, RGB(248,245,225));

  return(hwnd);
}

Après, si tu veux te faire un truc à la mano et n'afficher que du texte => Google !

Link to comment
Share on other sites

Quel bourrin !!!

Tu pourrais stoquer le nombre de jours max dans un tableau...

Et là, le placement des jours, tu l'as fixé comment ? (je veux dire, le "1" est pas toujours en premier ... mais là, c'est pour une année précise ...)

De toute façon, je pense en effet que pour faire exactement ce que tu veux, c'est un peu ardu ...

faire un calendrier qui marche pour tous les ans ... à la limite ça va ...

mais ce qui est dur, c'est de savoir le jour de la semaine ou ça va tomber ... :keskidit:

...là, en plus, c'est vraiment du bourrinage !!!

Link to comment
Share on other sites

pour savoir quel jour de la semaine tombe un jour de l'année,

il y a des formules qui font ça (ca tient sur qqs lignes)

j'avais un bout de code qui faisait ça en QBASIC, je vais essayer de retrouver ça...

Mais ces formules fonctionnent sur une période donnée

ou à partir d'une date précise

sinon :google:

le pb, c'est plutot de savoir si on est sur un jour férié

il y a déjà les jours fériés fixe (jour de l'an, fete nationale, noel, ...)

et les jours feries mobiles (paques, pentecote, ascension, ...) : qui sont un jour precis de la semaine, mais pas sur une semaine precise

A voir (si ça peut aider)

http://www.iie.cnam.fr/~blazy/projet/sujet.html

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...