Aller au contenu

Calendrier en C

Featured Replies

Posté(e)

Tous mes posts sont edités suite a un topic DISCRIMINATOIRE me visant personnelement et ecrit par NITRO TECK

Posté(e)

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:

Posté(e)

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 !

Posté(e)
  • Auteur

Tous mes posts sont edités suite a un topic DISCRIMINATOIRE me visant personnelement et ecrit par NITRO TECK

Posté(e)

Heu son code, c'est du code pour Visual C++...

Avec des fenêtres windows et tout.

D'après ce que j'ai compris du problème, tu as plutôt besoin d'un code pour le mode texte ?

Posté(e)

Dans le header time.h tu as une fonction time() qui renvoie le nombre de secondes écoulées depuis le premier janvier 1970 00:00 GMT, début de l'ère UNIX.

Posté(e)
  • Auteur

Tous mes posts sont edités suite a un topic DISCRIMINATOIRE me visant personnelement et ecrit par NITRO TECK

Posté(e)

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 !!!

Posté(e)

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

Posté(e)
  • Auteur

Tous mes posts sont edités suite a un topic DISCRIMINATOIRE me visant personnelement et ecrit par NITRO TECK

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.