Date

Share your advanced PureBasic knowledge/code with the community.
User avatar
Droopy
Enthusiast
Enthusiast
Posts: 658
Joined: Thu Sep 16, 2004 9:50 pm
Location: France
Contact:

Date

Post by Droopy »

Code updated For 5.20+

3 small functions for date

Code: Select all

Procedure.s FrenchDate(date) ;/ Return the date as Text : Ex : Vendredi 3 Février 2005
  
  Select DayOfWeek(date)
    Case 0 
      Temp.s+"Dimanche"
    Case 1 
      Temp.s+"Lundi"
    Case 2 
      Temp.s+"Mardi"
    Case 3 
      Temp.s+"Mercredi"
    Case 4 
      Temp.s+"Jeudi"
    Case 5 
      Temp.s+"Vendredi"
    Case 6 
      Temp.s+"Samedi"
  EndSelect
  
  
  Temp2.s=FormatDate("%dd", date) 
  If Left(Temp2,1)="0" : Temp2=Right(Temp2,1) : EndIf
  Temp+" "+Temp2+" "
  
  
  
  Select Month(date)
    Case 1
      Temp+"Janvier"
    Case 2
      Temp+"Février"
    Case 3
      Temp+"Mars"
    Case 4
      Temp+"Avril"
    Case 5
      Temp+"Mai"
    Case 6
      Temp+"Juin"
    Case 7
      Temp+"Juillet"
    Case 8
      Temp+"Aout"
    Case 9
      Temp+"Septembre"
    Case 10
      Temp+"Octobre"
    Case 11
      Temp+"Novembre"
    Case 12
      Temp+"Décembre"
  EndSelect
  
  Temp+FormatDate(" %yyyy",date) 
  
  ProcedureReturn Temp
EndProcedure

Procedure.s EnglishDate(date) ;/ Return the date as Text : Ex : Wednesday 3 Fébruary 2005
  
  Select DayOfWeek(date)
    Case 0 
      Temp.s+"Sunday"
    Case 1 
      Temp.s+"Monday"
    Case 2 
      Temp.s+"Twesday"
    Case 3 
      Temp.s+"Wednesday"
    Case 4 
      Temp.s+"Thursday"
    Case 5 
      Temp.s+"Friday"
    Case 6 
      Temp.s+"Saturday"
  EndSelect
  
  
  Temp2.s=FormatDate("%dd", date) 
  If Left(Temp2,1)="0" : Temp2=Right(Temp2,1) : EndIf
  Temp+" "+Temp2+" "
  
  
  
  Select Month(date)
    Case 1
      Temp+"January"
    Case 2
      Temp+"February"
    Case 3
      Temp+"March"
    Case 4
      Temp+"April"
    Case 5
      Temp+"May"
    Case 6
      Temp+"June"
    Case 7
      Temp+"Jully"
    Case 8
      Temp+"August"
    Case 9
      Temp+"September"
    Case 10
      Temp+"October"
    Case 11
      Temp+"November"
    Case 12
      Temp+"Décember"
  EndSelect
  
  Temp+FormatDate(" %yyyy",date) 
  
  ProcedureReturn Temp
EndProcedure

Procedure Week(date);/ Return the week count since the 
  
  Compteur=Date(Year(date),1,1,0,0,1) ;/ New year day
  
  ;/ Goto 1st monday 
  Repeat
    If DayOfWeek(Compteur)=1 : Break : EndIf
    Compteur=AddDate(Compteur,#PB_Date_Day,1)
  ForEver

  ;/ Add 1 week / Test if date is reach
  Repeat
    If Compteur>date : Break : EndIf
    Compteur=AddDate(Compteur,#PB_Date_Week,1)
    Semaine+1
   ForEver
  
  ProcedureReturn Semaine
EndProcedure
  
;/ Test  
MessageRequester("Date Test","Week n° "+Str(Week(Date()))+#CRLF$+FrenchDate(Date())+#CRLF$+EnglishDate(Date()),#MB_ICONINFORMATION)
[/code]