[resolu]Probleme de detection de jour

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

[resolu]Probleme de detection de jour

Message 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... :?
Dernière modification par Ar-S le lun. 11/juin/2007 20:16, modifié 1 fois.
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message 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
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message 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
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message 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.
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message 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
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message 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 :)
Répondre