IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Exemple de gestion des jours fériés


Sujet :

Langage SQL

  1. #1
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut Exemple de gestion des jours fériés
    Pour ceux que ça intéresse, je viens de créer une structure et quelques requêtes d'exemple afin de gérer proprement des calendriers, afin d'obtenir facilement :
    - La liste des jours de l'année, du mois, etc.
    - La liste des week-end, jours de la semaine, etc.
    - La liste des jours fériés dans un calendrier particulier (anglais, français, etc.)
    - La liste des jours travaillés pour chacun de ces calendriers

    Attention, dans mon exemple, j'ai mis le lundi de Pâques férié, donc non travaillé.
    Ce cas particulier obligerait à ajouter deux colonnes dans la table (pourtant déjà volumineuse) des jours afin de savoir si c'est un jour férié (c'est toujours le cas pour Pâques) et chômé (ce n'est plus le cas... selon les conventions...)

    L'exemple utilise la syntaxe Microsoft SQL Server.
    En revanche, je n'ai pas utilisé de particularité à ce SGBD, donc logiquement on peut facilement adapter le script à n'importe quel autre SGBD.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
     
    /*
    drop view jours_travailles;
    drop procedure CreerSamediDimanche;
    drop procedure CreerJours;
    drop table jour;
    drop table calendrier;
    */
     
    -- Table de définition des calendriers
    create table calendrier
    (
    	cal_id int identity(1,1) not null primary key,
    	cal_nom varchar(30) not null
    );
     
    -- Table des jours : détail de chaque calendrier
    create table jour
    (
    	jou_id int identity(1,1) not null primary key,
    	cal_id int not null references calendrier(cal_id),
    	jou_date date not null,
    	jou_annee as year(jou_date)
    );
     
    -- Index permettant d'optimiser les accès à la table des jours
    create index ix_jour_annee on jour(cal_id, jou_annee);
    create unique index ix_jour_jour on jour(cal_id, jou_annee);
    go
     
    -- Vue permettant d'obtenir pour chaque calendrier le nombre de jours travaillés
    create view jours_travailles
    as
    select tous.jou_annee, calendrier.cal_id, tous.jou_date
    from jour tous
    inner join calendrier on calendrier.cal_id > 2
    left outer join jour dim on dim.cal_id = 2 and dim.jou_date = tous.jou_date
    left outer join jour fer on fer.cal_id = calendrier.cal_id and fer.jou_date = tous.jou_date
    where tous.cal_id = 1
    and dim.jou_id is null
    and fer.jou_id is null;
    go
     
    -- Création de tous les jours de l'année dans un calendrier
    create procedure CreerJours(@cal_id as int, @annee as int)
    as
    begin
    	declare @date as date;
    	declare @datemax as date;
     
    	-- On vérifie que le calendrier existes...
    	if not exists (select null from calendrier where cal_id = @cal_id)
    	begin
    		raiserror('Calendrier inexistant', 1, 1);
    		return;
    	end;
     
    	-- On vérifie qu'il n'y a pas déjà de jour dans le calendrier
    	if exists (select null from jour where cal_id = @cal_id and jou_annee = @annee)
    	begin
    		raiserror('Des jours existent déjà dans ce calendier pour cette année', 1, 1);
    		return;
    	end;
     
    	-- Ok, on peut créer les jours
    	set @date = cast(cast(@annee as CHAR(4)) + '-01-01' as date);
    	set @datemax = dateadd(year, 1, @date);
     
    	while @date < @datemax
    	begin
    		insert into jour (cal_id, jou_date) values (@cal_id, @date);
    		set @date = dateadd(day, 1, @date);
    	end;
    end;
    go
     
    -- Création des week-end dans un calendrier
    create procedure CreerSamediDimanche(@cal_id as int, @annee as int)
    as
    begin
    	declare @date as date;
    	declare @datemax as date;
     
    	-- On vérifie que le calendrier existes...
    	if not exists (select null from calendrier where cal_id = @cal_id)
    	begin
    		raiserror('Calendrier inexistant', 1, 1);
    		return;
    	end;
     
    	-- On vérifie qu'il n'y a pas déjà de jour dans le calendrier
    	if exists (select null from jour where cal_id = @cal_id and jou_annee = @annee)
    	begin
    		raiserror('Des jours existent déjà dans ce calendier pour cette année', 1, 1);
    		return;
    	end;
     
    	-- Ok, on peut créer les jours
    	set @date = cast(cast(@annee as CHAR(4)) + '-01-01' as date);
    	set @datemax = dateadd(year, 1, @date);
     
    	while @date < @datemax
    	begin
    		if DATEPART(weekday, @date) in (1, 7)
    		begin
    			insert into jour (cal_id, jou_date) values (@cal_id, @date);
    		end;
    		set @date = dateadd(day, 1, @date);
    	end;
    end;
    go
     
    -- Création des calendriers
    insert into calendrier (cal_nom) values ('Tous les jours');
    insert into calendrier (cal_nom) values ('Samedis et dimanches');
    insert into calendrier (cal_nom) values ('Fériés français');
    insert into calendrier (cal_nom) values ('Fériés anglais');
    insert into calendrier (cal_nom) values ('Fériés écossais');
     
    -- Alimentation du calendrier de référence des jours de l'année
    exec CreerJours 1, 2012;
    exec CreerJours 1, 2013;
     
    -- Alimentation du calendrier de référence des week-end de l'année
    exec CreerSamediDimanche 2, 2012;
    exec CreerSamediDimanche 2, 2013;
     
    -- Fériés français
    insert into jour (cal_id, jou_date) values (3, '2012-01-01');
    insert into jour (cal_id, jou_date) values (3, '2012-04-09');
    insert into jour (cal_id, jou_date) values (3, '2012-05-01');
    insert into jour (cal_id, jou_date) values (3, '2012-05-08');
    insert into jour (cal_id, jou_date) values (3, '2012-05-17');
    insert into jour (cal_id, jou_date) values (3, '2012-05-28');
    insert into jour (cal_id, jou_date) values (3, '2012-07-14');
    insert into jour (cal_id, jou_date) values (3, '2012-08-15');
    insert into jour (cal_id, jou_date) values (3, '2012-11-01');
    insert into jour (cal_id, jou_date) values (3, '2012-11-11');
    insert into jour (cal_id, jou_date) values (3, '2012-12-25');
    insert into jour (cal_id, jou_date) values (3, '2013-01-01');
    insert into jour (cal_id, jou_date) values (3, '2012-04-01');
    insert into jour (cal_id, jou_date) values (3, '2013-05-01');
    insert into jour (cal_id, jou_date) values (3, '2013-05-08');
    insert into jour (cal_id, jou_date) values (3, '2013-05-09');
    insert into jour (cal_id, jou_date) values (3, '2013-05-20');
    insert into jour (cal_id, jou_date) values (3, '2013-07-14');
    insert into jour (cal_id, jou_date) values (3, '2013-08-15');
    insert into jour (cal_id, jou_date) values (3, '2013-11-11');
    insert into jour (cal_id, jou_date) values (3, '2013-11-01');
    insert into jour (cal_id, jou_date) values (3, '2013-12-25');
     
    -- Fériés anglais
    insert into jour (cal_id, jou_date) values (4, '2012-01-01');
    insert into jour (cal_id, jou_date) values (4, '2012-04-06');
    insert into jour (cal_id, jou_date) values (4, '2012-04-09');
    insert into jour (cal_id, jou_date) values (4, '2012-05-07');
    insert into jour (cal_id, jou_date) values (4, '2012-05-28');
    insert into jour (cal_id, jou_date) values (4, '2012-08-27');
    insert into jour (cal_id, jou_date) values (4, '2012-12-25');
    insert into jour (cal_id, jou_date) values (4, '2012-12-26');
    insert into jour (cal_id, jou_date) values (4, '2013-01-01');
    insert into jour (cal_id, jou_date) values (4, '2013-03-29');
    insert into jour (cal_id, jou_date) values (4, '2013-04-01');
    insert into jour (cal_id, jou_date) values (4, '2013-05-06');
    insert into jour (cal_id, jou_date) values (4, '2013-05-27');
    insert into jour (cal_id, jou_date) values (4, '2013-08-26');
    insert into jour (cal_id, jou_date) values (4, '2013-12-25');
    insert into jour (cal_id, jou_date) values (4, '2013-12-26');
     
    -- Fériés écossais
    insert into jour (cal_id, jou_date) values (5, '2012-01-01');
    insert into jour (cal_id, jou_date) values (5, '2012-01-02');
    insert into jour (cal_id, jou_date) values (5, '2012-04-06');
    insert into jour (cal_id, jou_date) values (5, '2012-05-07');
    insert into jour (cal_id, jou_date) values (5, '2012-05-28');
    insert into jour (cal_id, jou_date) values (5, '2012-08-06');
    insert into jour (cal_id, jou_date) values (5, '2012-11-30');
    insert into jour (cal_id, jou_date) values (5, '2012-12-25');
    insert into jour (cal_id, jou_date) values (5, '2012-12-26');
    insert into jour (cal_id, jou_date) values (5, '2013-01-01');
    insert into jour (cal_id, jou_date) values (5, '2013-01-02');
    insert into jour (cal_id, jou_date) values (5, '2013-03-29');
    insert into jour (cal_id, jou_date) values (5, '2013-05-06');
    insert into jour (cal_id, jou_date) values (5, '2013-05-27');
    insert into jour (cal_id, jou_date) values (5, '2013-08-05');
    insert into jour (cal_id, jou_date) values (5, '2013-11-30');
    insert into jour (cal_id, jou_date) values (5, '2013-12-25');
    insert into jour (cal_id, jou_date) values (5, '2013-12-26');
     
    -- On regarde parmi les 7 premiers jours de mai lesquels sont effectivement travaillés dans le calendrier français
    with test as
    (
    	select cast('2012-05-01' as date) madate
    	union all
    	select cast('2012-05-02' as date) madate
    	union all
    	select cast('2012-05-03' as date) madate
    	union all
    	select cast('2012-05-04' as date) madate
    	union all
    	select cast('2012-05-05' as date) madate
    	union all
    	select cast('2012-05-06' as date) madate
    	union all
    	select cast('2012-05-07' as date) madate
    )
    select test.madate
    from test
    inner join jours_travailles jt on jt.jou_date = test.madate
    where jt.cal_id = 3;
    On ne jouit bien que de ce qu’on partage.

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Attention, dans mon exemple, j'ai mis le lundi de Pâques férié, donc non travaillé.
    Ca a toujours été le cas, je pense que tu fais plutôt référence au lundi de pentecôte.

  3. #3
    Membre expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 612
    Points : 3 066
    Points
    3 066
    Par défaut
    Bonjour à tous,

    Pour compléter ce message de StringBuilder, je vous invite à lire le très intéressant article de SQLPro

  4. #4
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par skuatamad Voir le message
    Ca a toujours été le cas, je pense que tu fais plutôt référence au lundi de pentecôte.
    Euh, oui, ça doit être ça
    En tout cas, je ne différencie pas "jour férier" et "jour chômé".

    La solution serait, comme je l'ai indiqué, de rajouter deux flags dans la base, mais ça commence à faire chaud...

    Sans adaptation particulière, on peut aussi gérer les cas tordus, où les repos hebdomadaires ne sont pas "classiques".

    En effet, la lois impose :
    - Un jour chômé fixe par semaine (tous les dimanches, tous les mardi, tous les jeudi, etc.)
    - Deux jours chômés consécutifs toute les 2 semaines.

    Par exemple, les aides soignantes à domicile ont parfois une semaine qui se découpe de la sorte :
    - Ne travaille jamais le mardi
    - Ne travaille pas les week-end paire

    Ainsi, en formant une équipe de 5 personnes, avec chacune un jour chômé différent, on peut sans aucun problème s'occuper de malades le même nombre d'heures chaque jour, à l'exception du week-end qui où on travaille avec un effectif réduit de moitié. Il s'agit par exemple de l'organisation d'ADHAP Services pour qui j'ai travaillé.

    On peut alors créer 10 calendriers "lundi pair", "mardi pair", ... "jeudi impair", "vendredi impair" avec tous les lundi et un week-end sur deux par exemple.

    Avec une mention du calendrier sur la fiche salarié, on aura aisément la liste des jours travaillés par cette personne.
    On ne jouit bien que de ce qu’on partage.

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Bonne initiative !

    Par contre je ne vois pas bien l'utilité de recréer des jours à chaque fois, si les jours fériés sont propres aux régions / pays, les jours sont communs à tout le monde (on trouve toujours des exceptions comme les îles Samoa qui ont sauté le vendredi 29 décembre 2011 pour être plus proche du temps australien).

    Ça oblige à bien connaître les calendriers que vous créez pour pouvoir les interroger.

    J'ai publié une version PL/SQL pour Oracle 11g+ ici : http://www.developpez.net/forums/d11...-jours-feries/
    Cette version ne gère que les jours fériés de France métropolitaine (et encore j'ai un doute pour l'Alsace Lorraine).
    C'est extensible moyennant l'introduction de la notion de territoire, mais n'en ayant pas eu besoin, je ne l'ai pas développé.

    Dans le script je mets directement le XXème et XXIème siècles, la table et les index pèsent dans les 10 Mo, c'est à dire rien du tout !

  6. #6
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Je ne crée l'ensemble des jours de l'année que dans un seul calendrier (le calendrier 1, c'est à dire le calendrier "tous les jours").

    Pour les autres calendriers, je ne crée que les jours qui les concernent : les samedi et dimanche pour le calendrier des week-end, les jours fériés français pour le calendrier français, etc.

    C'est ensuite une combinaison des calendriers (vue "jours_travailles") qui permet d'avoir la liste des jours travaillés pour un calendrier donné. Mais je stock l'inverse dans la table.

    Après, il y a effectivement tout un tas d'autres solution pour gérer ça. C'est ce que j'ai pondu en une heure.

    Après, effectivement, je ne me suis pas penché sur les exotismes particuliers de certains pays. Je suis resté dans le classique, avec gestion des jours fériés pour les pays d'Europe au moins (à noter que des pays comme le Royaume Unis ont des jours fériés différents (Irlande du Nord, Ecosse et le reste). Pour l'Alsace, j'ai rien trouvé de particulier, mais c'est fort possible.
    A ce moment, j'ai été bien inspiré d'utiliser un code calendrier, qui n'est pas lié au pays. On peut aussi prévoir une table supplémentaire pour savoir comment combiner les calendriers entre eux.

    Si par exemple, l'alsace, c'est "fériés français plus telle et telle date", alors inutile de recopier les jours fériés français dedans, il suffit de modifier la vue pour qu'elle sache cumuler les deux.

    Idem pour un dépôt qui tourne 7/7 par exemple : on n'utilisera pas le calendrier des week-end ni des jours fériés. En revanche, on aura un calendrier spécifique routier, car certains jours les camions n'ont pas le droit de rouler, week-end du 15 août par exemple (et donc le dépôt ne peut pas travailler... à moins d'en profiter pour faire des inventaires)
    On ne jouit bien que de ce qu’on partage.

  7. #7
    Membre expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 612
    Points : 3 066
    Points
    3 066
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Cette version ne gère que les jours fériés de France métropolitaine (et encore j'ai un doute pour l'Alsace Lorraine).
    Pour ceux que ça intéresse, il y a des spécificités en Alsace-Moselle uniquement (et non la Lorraine toute entière)

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Rien de nouveau sous le soleil.... J'ai écrit cela il y a 10 ans... Lisez mes articles :
    Calendrier, timing et horaires en SQL...
    Calcul en SQL de la date de Pâques

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  9. #9
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 153
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Ça fait pas 10 ans mais 8 :o

    Et je connais cet article, très complet, voir presque trop, mais il ne propose pas cette solution pour travailler avec des calendriers différents (et possibilité des les combiner), à moins que j'aie mal lu, ce qui n'est pas impossible (j'avoue que j'ai lu en diagonale)
    On ne jouit bien que de ce qu’on partage.

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    J'ai migré vers developpez.com il y a 8 ans. Avant mes articles étaient écrit sous mon propre site web (http://membres.multimania.fr/sqlpro/). les premiers datant de 1998....

    Pour les multiples calendrier il faut simplement rajouter une entité de culture pour la gestion des jours fériés.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. [X3V6] gestion des jours fériés
    Par castorameur dans le forum SAGE
    Réponses: 1
    Dernier message: 24/04/2015, 08h04
  2. Réponses: 11
    Dernier message: 18/11/2011, 21h00
  3. Gestion des jours dans un mois
    Par Prodige2020 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/05/2008, 09h48
  4. Identication des jours fériés dans un calendrier
    Par Philippe GARNIER dans le forum Access
    Réponses: 2
    Dernier message: 28/07/2006, 14h29
  5. [Conception] Calendrier - Gestion des jours ouvrés
    Par eXiaNazaire dans le forum Général Java
    Réponses: 3
    Dernier message: 16/02/2006, 10h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo