Accueil > > > CALENDRIER PERPÉTUEL DE L'AN 0 À L'AN 2499
CALENDRIER PERPÉTUEL DE L'AN 0 À L'AN 2499
Information sur la source
Description
Ce programme utilise un algorithme permettant de définir le jour d'une date précise.
Le mode de fonctionnement de l'algorithme utilisé permet de ne pas dépendre de la date entrée par l'utilisateur.
En effet le programme mettra le même temps à résoudre la date que celle-ci soit proche de l'année 0 ou proche de 2499, et même si elle était noyée entre ces deux limites.
J'ai programmé sous Borland C++ 5, mais il ne devrait pas y avoir de pb d'utilisation même sur les autres compilateurs, je m'en suis tenu au Turbo C, pour le langage.
Source
- /*
- Cool Mouse, le 13.12.2005
- CALENDRIER PERPETUEL
- DE L'AN 0 A L'AN 2499
-
- Version 1.2
- */
-
-
- #include <stdio.h>
- #include <conio.h>
-
- void erreurs (void);
- int cherche_jour (int jour, int _code_mois);
- int cherche_mois (int mois_n, int bisextile, int _code_annee);
- int cherche_annee (int annee, int avant);
-
- void erreurs ()
- {
- puts ("<<< DATE NON VALIDE >>>");
- }
-
- int cherche_jour (int jour, int _code_mois)
- {
- int tab_jour[5][7] = {{1,2,3,4,5,6,7},{8,9,10,11,12,13,14},{15,16,17,18,19,20,21},
- {22,23,24,25,26,27,28},{29,30,31,0,0,0,0}},
- tab_code_jour[7][7] = {{5,6,0,1,2,3,4},{6,0,1,2,3,4,5},{0,1,2,3,4,5,6},
- {1,2,3,4,5,6,0},{2,3,4,5,6,0,1},{3,4,5,6,0,1,2},{4,5,6,0,1,2,3}},
- ligne, colonne;
-
- ligne = colonne = 0;
-
- while (tab_jour[ligne][colonne] != jour)
- {
- if (colonne == 6) { colonne = 0; ligne ++; }
- else colonne ++;
- }
- ligne = _code_mois;
- return (tab_code_jour[ligne][colonne]);
- }
-
- int cherche_mois (int mois_n, int bisextile, int _code_annee)
- {
- int //tab_mois1[3][7] = {{5,7,3,6,9,4,10},{0,2,11,0,12,7,0},{0,0,0,0,0,1,0}},
- tab_mois1[3][7] = {{5,2,3,6,9,1,10},{0,8,11,0,12,7,0},{0,0,0,0,0,4,0}},
- //tab_mois0[3][7] = {{5,7,2,6,9,4,1},{0,0,3,0,12,7,10},{0,0,0,11,0,0,0}},
- tab_mois0[3][7] = {{5,8,2,6,9,4,1},{0,0,3,0,12,7,10},{0,0,11,0,0,0,0}},
- tab_code_mois[7][7] = {{1,2,3,4,5,6,0},{2,3,4,5,6,0,1},{3,4,5,6,0,1,2},
- {4,5,6,0,1,2,3},{5,6,0,1,2,3,4},{6,0,1,2,3,4,5},{0,1,2,3,4,5,6}},
- ligne, colonne;
-
- ligne = colonne = 0;
-
-
- if (bisextile == 1)
- while (tab_mois1[ligne][colonne] != mois_n)
- {
- if (colonne == 6) { colonne = 0; ligne ++; }
- else colonne ++;
- }
- else
- while (tab_mois0[ligne][colonne] != mois_n)
- {
- if (colonne == 6) { colonne = 0; ligne ++; }
- else colonne ++;
- }
- ligne = _code_annee;
- return (tab_code_mois[ligne][colonne]);
- }
-
- int cherche_annee (int annee, int avant)
- {
- int tab_centaines[7][5] = { {0,7,14,17,21},{1,8,-1,-1,-1},{2,9,-1,18,22},
- {3,10,-1,-1,-1},{4,11,-1,19,23},{5,12,16,20,24},{26,13,-1,-1,-1}},
- tab_dizaines[18][7] = {{0,1,2,3,-1,4,5},{6,7,-1,8,9,10,11},
- {-1,12,13,14,15,-1,16},{17,18,19,-1,20,21,22},
- {23,-1,24,25,26,27,-1},{28,29,30,31,-1,32,33},
- {34,35,-1,36,37,38,39},{-1,40,41,42,43,-1,44},
- {45,46,47,-1,48,49,50},{51,-1,52,53,54,55,-1},
- {56,57,58,59,-1,60,61},{62,63,-1,64,65,66,67},
- {-1,68,69,70,71,-1,72},{73,74,75,-1,76,77,78},
- {79,-1,80,81,82,83,-1},{84,85,86,87,-1,88,89},
- {90,91,-1,92,93,94,95},{-1,96,97,98,99,-1,-1}},
- tab_code_annee[7][7] = {{6,0,1,2,3,4,5},{5,6,0,1,2,3,4},{4,5,6,0,1,2,3},{3,4,5,6,0,1,2},
- {2,3,4,5,6,0,1},{1,2,3,4,5,6,0},{0,1,2,3,4,5,6}},
- ligne, colonne, centdiz;
-
- ligne = colonne = 0;
- centdiz = 0; // variable travaillant avec les tableaux des centaines et
- // des dizaines. Variable prenant en 1er les 2 chiffres des
- // centaines puis en 2nd les dizaines de l'annee recherchee
-
- if (avant == 1) tab_centaines[1][2] = 15;
- else tab_centaines[4][2] = 15;
-
- centdiz = annee / 100;
- while (tab_centaines[ligne][colonne] != centdiz)
- {
- if (colonne == 4) { colonne = 0; ligne ++; }
- else colonne ++;
- }
- avant = ligne;
- ligne = colonne = 0;
- centdiz = annee % 100;
- while (tab_dizaines[ligne][colonne] != centdiz)
- {
- if (colonne == 6) { colonne = 0; ligne ++; }
- else colonne ++;
- }
- ligne = avant;
- return (tab_code_annee[ligne][colonne]);
- }
-
- void affiche_resultat (int code_jour, int jour_n, int mois_n, int annee)
- {
- // initialise les tableaux de mois et de jours
- char *mois[12] = {"janvier","fevrier","mars","avril","mai","juin","juillet",
- "aout","septembre","octobre","novembre","decembre"},
- *jour[7] = {"lundi","mardi","mercredi","jeudi","vendredi","samedi",
- "dimanche"};
-
- printf ("%s %d %s %d", jour[code_jour], jour_n, mois[mois_n -1], annee);
- }
-
- void main ()
- {
- char choix = ' ';
- int jour_n, mois_n, annee, bisextile, avant, validite, code_jour,
- code_mois, code_annee;
- long controle;
-
- jour_n = mois_n = annee = 0; // initialise les variables de date a 0
- controle = avant = -1 ; // Test la date pour savoir si elle est avant
- // le 4.10.1582 ou apres le 15.10.1582
- bisextile = 0; // Test l'annee, pour savoir si elle est bisextile ou non
- validite = 0; // Test la validité de la date saisie par l'utilisateur
- code_jour = code_mois = code_annee = 0; // Initialise les variables
- // permettant de definir le jour precis d'une date
-
- clrscr ();
- puts ("\n\t\t\tBienvenue sur le calendrier perpetuel.\n\n Vous allez "
- "enfin connaitre le jour correspondant a la date que vous saisirez."
- "\n\n\n\tAttention a l'annee que vous entrerez, ce calendrier perpetuel\n"
- "\t prend en compte une echelle allant de l'an 0 a l'an 2499\n\n\n\n");
-
- while (1)
- {
- do
- {
- printf ("\nEntrez la date (jj/mm/aaaa): ");
- scanf ("%d/%d/%d",&jour_n, &mois_n, &annee);
- // Test de la bisextilité de l'année
- if ( (annee % 100 == 0 && annee % 400 == 0) || (annee % 100 != 0 && annee % 4 == 0) )
- bisextile = 1 ;
- else
- bisextile = 0 ;
- // Test de la validité de la date entrée par l'utilisateur
- if ( (jour_n < 1 || jour_n > 31) || (mois_n < 1 || mois_n > 12) ||
- (annee < 0 || annee >= 2500) ||
- (jour_n > 30 && (mois_n == 4 || mois_n == 6 ||
- mois_n == 9 || mois_n == 11)) ||
- (mois_n == 2 && (jour_n > 29 || (bisextile == 0 && jour_n > 28))) )
- {
- validite = 1; // DATE NON VALIDE
- erreurs ();
- }
- else validite = 0; // Date Valide
- } while (validite);
-
- controle = (annee * 10000) + (mois_n * 100) + jour_n ; // sonde de contrôle
- printf ("controle = %u\n", controle);
- // contrôle de changement de calendrier
- if (controle <= 15821004) avant = 1;
- if (controle > 15821015) avant = 0;
- if (controle > 15821004 && controle <= 15821015)
- puts ("Desole! Le jour est impossible a determiner pour cette date.");
- else
- {
- code_annee = cherche_annee (annee, avant);
- code_mois = cherche_mois (mois_n, bisextile, code_annee);
- code_jour = cherche_jour (jour_n, code_mois);
- affiche_resultat (code_jour, jour_n, mois_n, annee);
- }
- puts ("\n\n\t\tS: Saisir une nouvelle date\n\t\tQ: Quitter l'application");
- printf ("\n\t\t\tVotre Choix........: ");
- choix = getche ();
- if (choix == 'S' || choix == 's') puts (" "); // printf ("\nla touche tapee est S ou s, normalement: %c\n", choix);
- else break; // { printf ("\nla touche tapee est: %c\n", choix); break; }
- }
- printf ("\n\n\tAppuyer sur une touche pour quitter........");
- getch ();
- }
/*
Cool Mouse, le 13.12.2005
CALENDRIER PERPETUEL
DE L'AN 0 A L'AN 2499
Version 1.2
*/
#include <stdio.h>
#include <conio.h>
void erreurs (void);
int cherche_jour (int jour, int _code_mois);
int cherche_mois (int mois_n, int bisextile, int _code_annee);
int cherche_annee (int annee, int avant);
void erreurs ()
{
puts ("<<< DATE NON VALIDE >>>");
}
int cherche_jour (int jour, int _code_mois)
{
int tab_jour[5][7] = {{1,2,3,4,5,6,7},{8,9,10,11,12,13,14},{15,16,17,18,19,20,21},
{22,23,24,25,26,27,28},{29,30,31,0,0,0,0}},
tab_code_jour[7][7] = {{5,6,0,1,2,3,4},{6,0,1,2,3,4,5},{0,1,2,3,4,5,6},
{1,2,3,4,5,6,0},{2,3,4,5,6,0,1},{3,4,5,6,0,1,2},{4,5,6,0,1,2,3}},
ligne, colonne;
ligne = colonne = 0;
while (tab_jour[ligne][colonne] != jour)
{
if (colonne == 6) { colonne = 0; ligne ++; }
else colonne ++;
}
ligne = _code_mois;
return (tab_code_jour[ligne][colonne]);
}
int cherche_mois (int mois_n, int bisextile, int _code_annee)
{
int //tab_mois1[3][7] = {{5,7,3,6,9,4,10},{0,2,11,0,12,7,0},{0,0,0,0,0,1,0}},
tab_mois1[3][7] = {{5,2,3,6,9,1,10},{0,8,11,0,12,7,0},{0,0,0,0,0,4,0}},
//tab_mois0[3][7] = {{5,7,2,6,9,4,1},{0,0,3,0,12,7,10},{0,0,0,11,0,0,0}},
tab_mois0[3][7] = {{5,8,2,6,9,4,1},{0,0,3,0,12,7,10},{0,0,11,0,0,0,0}},
tab_code_mois[7][7] = {{1,2,3,4,5,6,0},{2,3,4,5,6,0,1},{3,4,5,6,0,1,2},
{4,5,6,0,1,2,3},{5,6,0,1,2,3,4},{6,0,1,2,3,4,5},{0,1,2,3,4,5,6}},
ligne, colonne;
ligne = colonne = 0;
if (bisextile == 1)
while (tab_mois1[ligne][colonne] != mois_n)
{
if (colonne == 6) { colonne = 0; ligne ++; }
else colonne ++;
}
else
while (tab_mois0[ligne][colonne] != mois_n)
{
if (colonne == 6) { colonne = 0; ligne ++; }
else colonne ++;
}
ligne = _code_annee;
return (tab_code_mois[ligne][colonne]);
}
int cherche_annee (int annee, int avant)
{
int tab_centaines[7][5] = { {0,7,14,17,21},{1,8,-1,-1,-1},{2,9,-1,18,22},
{3,10,-1,-1,-1},{4,11,-1,19,23},{5,12,16,20,24},{26,13,-1,-1,-1}},
tab_dizaines[18][7] = {{0,1,2,3,-1,4,5},{6,7,-1,8,9,10,11},
{-1,12,13,14,15,-1,16},{17,18,19,-1,20,21,22},
{23,-1,24,25,26,27,-1},{28,29,30,31,-1,32,33},
{34,35,-1,36,37,38,39},{-1,40,41,42,43,-1,44},
{45,46,47,-1,48,49,50},{51,-1,52,53,54,55,-1},
{56,57,58,59,-1,60,61},{62,63,-1,64,65,66,67},
{-1,68,69,70,71,-1,72},{73,74,75,-1,76,77,78},
{79,-1,80,81,82,83,-1},{84,85,86,87,-1,88,89},
{90,91,-1,92,93,94,95},{-1,96,97,98,99,-1,-1}},
tab_code_annee[7][7] = {{6,0,1,2,3,4,5},{5,6,0,1,2,3,4},{4,5,6,0,1,2,3},{3,4,5,6,0,1,2},
{2,3,4,5,6,0,1},{1,2,3,4,5,6,0},{0,1,2,3,4,5,6}},
ligne, colonne, centdiz;
ligne = colonne = 0;
centdiz = 0; // variable travaillant avec les tableaux des centaines et
// des dizaines. Variable prenant en 1er les 2 chiffres des
// centaines puis en 2nd les dizaines de l'annee recherchee
if (avant == 1) tab_centaines[1][2] = 15;
else tab_centaines[4][2] = 15;
centdiz = annee / 100;
while (tab_centaines[ligne][colonne] != centdiz)
{
if (colonne == 4) { colonne = 0; ligne ++; }
else colonne ++;
}
avant = ligne;
ligne = colonne = 0;
centdiz = annee % 100;
while (tab_dizaines[ligne][colonne] != centdiz)
{
if (colonne == 6) { colonne = 0; ligne ++; }
else colonne ++;
}
ligne = avant;
return (tab_code_annee[ligne][colonne]);
}
void affiche_resultat (int code_jour, int jour_n, int mois_n, int annee)
{
// initialise les tableaux de mois et de jours
char *mois[12] = {"janvier","fevrier","mars","avril","mai","juin","juillet",
"aout","septembre","octobre","novembre","decembre"},
*jour[7] = {"lundi","mardi","mercredi","jeudi","vendredi","samedi",
"dimanche"};
printf ("%s %d %s %d", jour[code_jour], jour_n, mois[mois_n -1], annee);
}
void main ()
{
char choix = ' ';
int jour_n, mois_n, annee, bisextile, avant, validite, code_jour,
code_mois, code_annee;
long controle;
jour_n = mois_n = annee = 0; // initialise les variables de date a 0
controle = avant = -1 ; // Test la date pour savoir si elle est avant
// le 4.10.1582 ou apres le 15.10.1582
bisextile = 0; // Test l'annee, pour savoir si elle est bisextile ou non
validite = 0; // Test la validité de la date saisie par l'utilisateur
code_jour = code_mois = code_annee = 0; // Initialise les variables
// permettant de definir le jour precis d'une date
clrscr ();
puts ("\n\t\t\tBienvenue sur le calendrier perpetuel.\n\n Vous allez "
"enfin connaitre le jour correspondant a la date que vous saisirez."
"\n\n\n\tAttention a l'annee que vous entrerez, ce calendrier perpetuel\n"
"\t prend en compte une echelle allant de l'an 0 a l'an 2499\n\n\n\n");
while (1)
{
do
{
printf ("\nEntrez la date (jj/mm/aaaa): ");
scanf ("%d/%d/%d",&jour_n, &mois_n, &annee);
// Test de la bisextilité de l'année
if ( (annee % 100 == 0 && annee % 400 == 0) || (annee % 100 != 0 && annee % 4 == 0) )
bisextile = 1 ;
else
bisextile = 0 ;
// Test de la validité de la date entrée par l'utilisateur
if ( (jour_n < 1 || jour_n > 31) || (mois_n < 1 || mois_n > 12) ||
(annee < 0 || annee >= 2500) ||
(jour_n > 30 && (mois_n == 4 || mois_n == 6 ||
mois_n == 9 || mois_n == 11)) ||
(mois_n == 2 && (jour_n > 29 || (bisextile == 0 && jour_n > 28))) )
{
validite = 1; // DATE NON VALIDE
erreurs ();
}
else validite = 0; // Date Valide
} while (validite);
controle = (annee * 10000) + (mois_n * 100) + jour_n ; // sonde de contrôle
printf ("controle = %u\n", controle);
// contrôle de changement de calendrier
if (controle <= 15821004) avant = 1;
if (controle > 15821015) avant = 0;
if (controle > 15821004 && controle <= 15821015)
puts ("Desole! Le jour est impossible a determiner pour cette date.");
else
{
code_annee = cherche_annee (annee, avant);
code_mois = cherche_mois (mois_n, bisextile, code_annee);
code_jour = cherche_jour (jour_n, code_mois);
affiche_resultat (code_jour, jour_n, mois_n, annee);
}
puts ("\n\n\t\tS: Saisir une nouvelle date\n\t\tQ: Quitter l'application");
printf ("\n\t\t\tVotre Choix........: ");
choix = getche ();
if (choix == 'S' || choix == 's') puts (" "); // printf ("\nla touche tapee est S ou s, normalement: %c\n", choix);
else break; // { printf ("\nla touche tapee est: %c\n", choix); break; }
}
printf ("\n\n\tAppuyer sur une touche pour quitter........");
getch ();
}
Conclusion
Actuellement le code est écrit pour DOS, mais je compte le mettre sous format graphique (j'ai la flemme pour l'instant) et le porter sur d'autres langues que le français. De même, il n'est pas très commenté pour le moment, mais dans une mise à jour prochaine, vous aurez tous les détails eur l'algorithme utilisé.
Un petit bémol, vous vous en apercevrez en regardant le code, et si vous taper une certaine date... En l'an 1582, le programme ne peut définir le jour entre le 5/10/1582 et le 15/10/1582... pour cause de changement de calendrier.
A part cela, le programme convertit automatiquement les semaines de l'antiquité ou d'autres périodes, en semaines de 7 jours (d'aujourd'hui).
Si vous avez des remarques, ou des suggestions elle sont les bienvenues.
Historique
- 19 mai 2005 01:06:24 :
- ajout du code source en clair sur la page, et ajout d'annotations
- 07 décembre 2005 10:42:49 :
- Correction de bug:
Comme SOFIANE1234 me le faisait aimablement remarquer, le programme produisait une erreur de décalage d'un jour à compter du 1/11/2005.
L'erreur venait en fait des tableaux des mois (il manquait le mois d'août). Erreur corrigée maintenant.
Modification du code:
De même, j'ai simplfié le test de la bisextilité de l'année, en reprenant l'idée de BruNews. Merci à lui.
- 13 décembre 2005 11:17:40 :
- Ajout du fichier ZIP, modif de la source avec vue sur les champs modifiés
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Recherche un calendrier Grégorien [ par Okin78 ]
Bonjour à tous, voila cé bien sympathique ici ;o) !!je me demande ou puis je trouver avec source un calendrier Grégorien en C/C++ ?Merci ;o)
Recherche objet calendrier hebdomadaire [ par laglisse ]
Je recherche un objet graphique pour VCplusplus assimilable a une grille regroupant toutes les heures de la semaine et permettant d'un simple glisseme
MFC calendrier [ par james ]
Je voudrai faire un calendrier mais le pb est que les classes qui existent CMonthCalCtrl et CDateTimeCtrl ne me permettent que de sélectionner plusieu
Calendrier C++ .NET [ par tarzent ]
Salut!Je voudrais récupérer la date sélectionnée dans un controle "IDC_MONTHCALENDAR"... J'y arrive dans une Form, il suffit de faire appel à la fonct
VC++6 && calendrier [ par safira ]
safiraSalut!Quelqu'un pourrait m'aider?Je dois introduire un calendrier dans un dialog et doit sélectionner la date. Comment dois-je faire?Merci<br
Calendrier [ par gus2647 ]
Bonjour,Je viens de creer un calendrier avec la classe CMonthCalCtrl et je n arrive pas a recuperer la date que je selection et a refermer juste apres
urgent svp !!! : objet calendrier [ par nicosdieu ]
bonjour,j'ai deux forumlaires A et Bdans B, j'ai un objet de type calendrier.Lorsque j'essaye d'ouvrir B depuis A, rien ne s'ouvreSi j'enleve l'objet
Cherche interface identique au calendrier de Outlook en C# pour une interface SCHEDULER [ par yfbf ]
Bonjour à tous,Je suis actuellement occupé de développer un SCHEDULER.Ce scheduler a pour l'instant comme interface un TreeView comprenant les jours d
Calendrier irréel [ par Frenabis ]
Voilà mon problème : je voudrai créer un calendrier. Mais pas un calendrier normal, il faudrait qu'il soit imaginaire. Le problème
Comment récupérer la valeur choisie dans un calendrier en mode graphique et la mettre ensuite dans une String ? [ par michelcreve ]
in first, Bonjour à tous Voila, j'essaie de faire une appli pour demander de saisir une date dans un champ avec la possibilité de cliquer sur un bout
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
MATRICE TEMPLATEMATRICE TEMPLATE par hjr2610
Cliquez pour lire la suite par hjr2610 RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|