Page 1 sur 1

[resolu]Probleme de detection de jour

Publié : lun. 11/juin/2007 17:02
par Ar-S
Me revoilà avec un probleme (etrange non :))

Maintenant que ma procédure CopyDirectory fonctionne...

Code : Tout sélectionner

Procedure Copie_Rep ()
  If CopyDirectory("c:\test", "c:\test2", "*.*", #PB_FileSystem_Recursive | #PB_FileSystem_Force)
    MessageRequester ("info","La sauvegarde a été réalisée")
  Else
    MessageRequester ("info","Erreur, copie impossible, vérifier que le reseau fonctionne et que les fichiers sont disponibles")
  EndIf
EndProcedure
J'aimerai qu'elle se lance si 2 conditions sont réunis :

Si le jour de la semaine est lundi
Si l'heure est 9 heure du matin

J'ai des soucis avec DayOfWeek, voilà ma procédure

Code : Tout sélectionner

Procedure Test_jour_9h()
  ;Donne le nom fr des jours
  If DayOfWeek(0)
    jour$="Dimanche"
    ElseIf DayOfWeek(1)
      jour$="Lundi"
    ElseIf DayOfWeek(2)
      jour$="mardi"
    ElseIf DayOfWeek(3)
      jour$="Mercredi"
    ElseIf DayOfWeek(4)
      jour$="Jeudi"
    ElseIf DayOfWeek(5)
      jour$="Vendredi"
    Else
      jour$="Samedi"
    EndIf

   
  If jour$="Lundi"
     MessageRequester ("info",jour$)
    Else
      MessageRequester ("info","Pas bon jour, nous sommes "+jour$)
  EndIf
EndProcedure
Quand j'execute la procedure, il me dit que c'est pas le bonjour car on est dimanche... Pourtant on est bien lundi... :?

Publié : lun. 11/juin/2007 17:07
par Cls
DayOfWeek(Date()) et non "0"

Code : Tout sélectionner

Date = Date()
Jour.s

Select DayOfWeek(Date)
  Case 0
    Jour = "Dimanche"
  Case 1
    Jour = "Lundi"
  Case 2
    Jour = "Mardi"
  Case 3 
    Jour = "Mercredi"
  Case 4
    Jour = "Jeudi"
  Case 5
    Jour = "Vendredi"
  Case 6
    Jour = "Samedi"
EndSelect

MessageRequester("Jour", "Nous sommes " + Jour)


Cordialement,
Cls

Publié : lun. 11/juin/2007 17:22
par Ar-S
Merci pour ton aide

J'ai du mal à utilise CASE alors que c'est pratique !
j'avais deja oublié d'appeler la date => date=date()

Merci encore, je vais essayer de continuer mon bazarre

Publié : lun. 11/juin/2007 17:32
par Cls
SELECT / CASE est une structure de contrôle effectivement très pratique. Je ne sais pas si elle est plus rapide que les ElseIf mis bout à bout mais le code est beaucoup plus lisible.

Publié : lun. 11/juin/2007 17:52
par Dr. Dri
plus simple, tu peux passer par des constantes

Code : Tout sélectionner

Enumeration
  #Dimanche
  #Lundi
  #Mardi
  #Mercredi
  #Jeudi
  #Vendredi
  #Samedi
EndEnumeration


Procedure Test_jour_9h()
  Date = Date()
  
  If DayOfWeek( Date ) = #Lundi And Hour( Date ) = 9
    ProcedureReturn #True
  EndIf
  
  ProcedureReturn #False
EndProcedure

Debug Test_jour_9h()
Dri

Publié : lun. 11/juin/2007 20:18
par Ar-S
Merci à vous deux pour les différents codes.

Je suis content que ces histoires de gestion de la date et du temps deviennent plus clair dans mon esprit :)