Gestion d'équipes de travail

lap2 Messages postés 36 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 9 novembre 2007 - 17 août 2004 à 11:31
OliLeclercq Messages postés 1 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 18 septembre 2004 - 18 sept. 2004 à 20:14
Salut,

Je débute en prog et je suis confronté à un problème. Je voudrait pouvoir créer un programme qui me permettrait de savoir comment je travaillerais à une date future en intégrant le fait que je travaille en 3 X 8. Exemple : est-ce que je serai de jour, de matin ou de nuit le 22/12/04. Comment caller le calendrier ? On change d'équipe tous les lundis matin dans cet ordre : Matin, Après-midi, nuit.

Je suis sûr que cela ne doit pas être un gros problème pour les spécialistes des calendriers permanents alors,

Merci d'avance et à charge de revanche dans la mesure de mes faibles moyens

Lap2

9 réponses

Loulibier Messages postés 309 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 24 septembre 2008 2
17 août 2004 à 12:13
Salut,

voici un petit source qui pourra peut être t'aider.

procedure TForm1.Button1Click(Sender: TObject);
const
  // Je pars du principe que la semaine 1 tu es du matin.
  DAY  : array[0..2] of string = ('Matin', 'Après Midi', 'Soir');
var
  iNoSemaine : integer;
  iWeek      : integer;
  index      : integer;
begin
  iNoSemaine := WeekOfTheYear(DateTimePicker1.Date);

  for index := 0 to 2 do
  begin
    iWeek := index + 1;

    while (iWeek <= 52) do
    begin
      if iWeek = iNoSemaine then
      begin
        ShowMessage(DAY[index]);
        exit;
      end;

      iWeek := iWeek + 3;
    end;
  end;
end;


Bonne Prog,

Olivier.
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
17 août 2004 à 14:03
Bien vu, Olivier ! 8-)

Petit problème, néanmoins : la fonction WeekOfTheYear() est peut-être fournie à partir de Delphi 7 (?), moi je n'en dispose pas... :dissapprove)

Qu'à cela ne tienne...

Voici une fonction

function WeekNumber(ADay: TDateTime): Integer;

trouvée sur internet à cette adresse :

http://www.efg2.com/Lab/Library/UseNet/2001/0405c.txt

Je copie-colle ce code :

function WeekNumber(ADay: TDateTime): Integer;
var
  Year, Month, Day: Word;
  WeekDay: integer;
  DumDay: TDateTime;
  diff, diff2: integer;
begin
  DumDay := ADay;
  DecodeDate(DumDay, Year, Month, Day);
  DumDay := EncodeDate(Year, 1, 1);  { first day of year }
  WeekDay := DayOfWeek(DumDay);
  if (WeekDay < 6) and (Weekday > 1) then  { monday -> thursday }
    DumDay := DumDay - WeekDay + 2
  else
  begin
    if WeekDay > 5 then
      DumDay := DumDay - WeekDay + 9;
    if WeekDay = 1 then
      DumDay := DumDay + 1;
  end;      { DumDay points to monday in week number one }
  diff := Trunc(ADay - DumDay);
  if diff < 0 then
  begin
    Result := WeekNumber(ADay - 7) + 1; { last week of previous year }
    Exit;
  end;
  DumDay := EncodeDate(Year, 12, 31);  { last day of year }
  WeekDay := DayOfWeek(DumDay);
  diff2 := Trunc(DumDay - ADay);
  if (diff2 < 3) and { one of last three days of year }
     (WeekDay > 1) and (WeekDay < 5) and { monday -> wednesday }
     (WeekDay > diff2 + 1) then
  begin
    Result := 1;                     { first week of next year }
    Exit;
  end;
  Result := diff div 7 + 1;
end;


Là, ça marche impec ! :approve)

Bonne prog' :-p
0
Loulibier Messages postés 309 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 24 septembre 2008 2
17 août 2004 à 15:12
Bien vu à toi aussi Japee, ;)

Je ne m'étais pas rendu compte que cette function n'existait pas dans les versions infèrieur à Delphi 7. :sad)
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
17 août 2004 à 23:11
Que nenni les amis : WeekOfTheYear est au moins livrée avec Delphi 6. Il faut seulement penser à déclarer DateUtils dans une clause uses.
May Delphi be with you
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
17 août 2004 à 23:46
Exact, Delphiprog ! :blush)

La fonction ci-dessus reste donc utile pour ceux qui n'ont que Delphi 4 (salut, kenavo ;) ), voire 5 (?) et antérieur...

Bonne prog' :-p
0
Loulibier Messages postés 309 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 24 septembre 2008 2
18 août 2004 à 00:37
Comme ça on aura fait le tour de la question ;)

Pour Delphi 7, utiliser WeekOfTheYear qui se trouve dans DateUtils.

Pour Delphi 6, utiliser WeekOfTheYear sans oublier de déclarer DateUtils dans les uses.

Et pour les version inférieur il faut utiliser la function de Japee

Bonne Prog, :big)

Olivier.
0
lap2 Messages postés 36 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 9 novembre 2007
18 août 2004 à 08:59
Salut à tous et merci, pour la solution que j'utiliserais probablement un jour !

Mais dans l'immédiat, vous ne pourriez pas me trouver la solution en VB6 ? ( et c'est là que je me prends les tomates pourries dans la gueule ...) Désolé de ne pas avoir précisé dès le départ.

Merci de votre indulgence,

Lap2
0
Loulibier Messages postés 309 Date d'inscription jeudi 6 juin 2002 Statut Membre Dernière intervention 24 septembre 2008 2
18 août 2004 à 09:25
Salut,

Pour les tomates ... je crois que t'es bien partis pour en recevoir ;)
Repose ta question surle forum plus approprié : VBFrance

Ici tu es sur un Forum sur la programmation Delphi.

Bonne Prog,

Olivier.
0
OliLeclercq Messages postés 1 Date d'inscription lundi 10 février 2003 Statut Membre Dernière intervention 18 septembre 2004
18 sept. 2004 à 20:14
Merci a tous, c'est pas tombé sur l'ecran d'un aveugle. Je vais essayer de m'en servir, moi je travaille sur un cycle de 6 semaines en décalé.
J'ai un projet a realiser pour l'equipe : gestion du planning des 3 groupes. Pour commencer je cherche (comme un debutant que je suis) comment afficher en vertical gauche les NOMS et en horizontal le calendrier.
Merci de vos reponses.
Olivier.
0
Rejoignez-nous