Well, not here !Shardik wrote:@Flype
You don't need to set the first character to uppercase because the day and month names are already returned correctly in upper/lowercase from the Win API call...
(Using Win NT4 sp6 FR)
Well, not here !Shardik wrote:@Flype
You don't need to set the first character to uppercase because the day and month names are already returned correctly in upper/lowercase from the Win API call...
gnozal wrote: Well, not here !
(Using Win NT4 sp6 FR)
Strange!!!Flype wrote: it looks like that, at least in french, months and weekdays are all lower case (tested on WinXP).
Code: Select all
;-
;- Multi-Language FormatDate() for PureBasic 4.0
;- No OS Specific code, the only goal of this function is to be cross-platform.
;-
;- %dd -> 01
;- %ddd -> Mon.
;- %dddd -> Monday
;- %mm -> 01
;- %mmm -> Jan.
;- %mmmm -> January
;-
Enumeration ; #PB_Language
#PB_Language_English = $409 ; Values taken from the Microsoft Platform SDK -> Table of Language Identifiers.
#PB_Language_French = $40C
#PB_Language_German = $407
#PB_Language_Italian = $410
#PB_Language_Portuguese = $816
#PB_Language_Spanish = $40A
EndEnumeration
Procedure.s FormatDate2(mask.s, date.l, language.l = #PB_Language_English) ; Returns a multi-language string representation of the Date, according to the specified Mask$.
Protected lDayOfWeek.l = DayOfWeek(date), lMonth.l = Month(date)
Select language
Case #PB_Language_English
mask = ReplaceString(mask, "%mmmm", StringField("January,February,March,April,May,June,July,August,September,October,November,December", lMonth, ","))
mask = ReplaceString(mask, "%dddd", StringField("Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday", lDayOfWeek, ","))
mask = ReplaceString(mask, "%mmm", StringField("Jan.,Feb.,Mar.,Apr.,May,Jun.,Jul.,Aug.,Sept.,Oct.,Nov.,Dec.", lMonth, ","))
mask = ReplaceString(mask, "%ddd", StringField("Sun.,Mon.,Tue.,Wed.,Thu.,Fri.,Sat.", lDayOfWeek, ","))
Case #PB_Language_French
mask = ReplaceString(mask, "%mmmm", StringField("Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre,", lMonth, ","))
mask = ReplaceString(mask, "%dddd", StringField("Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi,Dimanche,", lDayOfWeek, ","))
mask = ReplaceString(mask, "%mmm", StringField("Janv.,Févr.,Mars,Avr.,Mai,Juin,Juil.,Août,Sept.,Oct.,Nov.,Déc.,", lMonth, ","))
mask = ReplaceString(mask, "%ddd", StringField("Lun.,Mar.,Mer.,Jeu.,Ven.,Sam.,Dim.,", lDayOfWeek, ","))
Case #PB_Language_German
mask = ReplaceString(mask, "%mmmm", StringField("Januar,Februar,März,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember,", lMonth, ","))
mask = ReplaceString(mask, "%dddd", StringField("Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag,Sonntag,", lDayOfWeek, ","))
mask = ReplaceString(mask, "%mmm", StringField("Jan,Feb,Mrz,Apr,Mai,Jun,Jul,Aug,Sep,Okt,Nov,Dez,", lMonth, ","))
mask = ReplaceString(mask, "%ddd", StringField("Mo,Di,Mi,Do,Fr,Sa,So,", lDayOfWeek, ","))
Case #PB_Language_Italian
mask = ReplaceString(mask, "%mmmm", StringField("Gennaio,Febbraio,Marzo,Aprile,Maggio,Giugno,Luglio,Agosto,Settembre,Ottobre,Novembre,Dicembre,", lMonth, ","))
mask = ReplaceString(mask, "%dddd", StringField("Lunedì,Martedì,Mercoledì,Giovedì,Venerdì,Sabato,Domenica,", lDayOfWeek, ","))
mask = ReplaceString(mask, "%mmm", StringField("Gen,Feb,Mar,Apr,Mag,Giu,Lug,Ago,Set,Ott,Nov,Dic,", lMonth, ","))
mask = ReplaceString(mask, "%ddd", StringField("Lun,Mar,Mer,Gio,Ven,Sab,Dom,", lDayOfWeek, ","))
Case #PB_Language_Portuguese
mask = ReplaceString(mask, "%mmmm", StringField("Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre,", lMonth, ","))
mask = ReplaceString(mask, "%dddd", StringField("Lunes,Martes,Miércoles,Jueves,Viernes,Sábado,Domingo,", DayOfWeek(date) + 1, ","))
mask = ReplaceString(mask, "%mmm", StringField("Ene,Feb,Mar,Abr,May,Jun,Jul,Ago,Sep,Oct,Nov,Dic,", lMonth, ","))
mask = ReplaceString(mask, "%ddd", StringField("Lun,Mar,Mié,Jue,Vie,Sáb,Dom,", lDayOfWeek, ","))
Case #PB_Language_Spanish
mask = ReplaceString(mask, "%mmmm", StringField("Janeiro,Fevereiro,Março,Abril,Maio,Junho,Julho,Agosto,Setembro,Outubro,Novembro,Dezembro,", lMonth, ","))
mask = ReplaceString(mask, "%dddd", StringField("Segunda-feira,Terça-feira,Quarta-feira,Quinta-feira,Sexta-feira,Sábado,Domingo,", lDayOfWeek, ","))
mask = ReplaceString(mask, "%mmm", StringField("Jan,Fev,Mar,Abr,Mai,Jun,Jul,Ago,Set,Out,Nov,Dez,", lMonth, ","))
mask = ReplaceString(mask, "%ddd", StringField("Seg,Ter,Qua,Qui,Sex,Sáb,Dom,", lDayOfWeek, ","))
EndSelect
ProcedureReturn FormatDate(mask, date)
EndProcedure
Debug FormatDate2("%ddd %dd %mmm %yyyy %hh:%ii:%ss", Date())
Debug FormatDate2("%ddd %dd %mmm %yyyy %hh:%ii:%ss", Date(), #PB_Language_English)
Debug FormatDate2("%ddd %dd %mmm %yyyy %hh:%ii:%ss", Date(), #PB_Language_French)
Debug FormatDate2("%ddd %dd %mmm %yyyy %hh:%ii:%ss", Date(), #PB_Language_German)
Debug FormatDate2("%ddd %dd %mmm %yyyy %hh:%ii:%ss", Date(), #PB_Language_Italian)
Debug FormatDate2("%ddd %dd %mmm %yyyy %hh:%ii:%ss", Date(), #PB_Language_Portuguese)
Debug FormatDate2("%ddd %dd %mmm %yyyy %hh:%ii:%ss", Date(), #PB_Language_Spanish)
Debug ""
Debug FormatDate2("%dddd %dd %mmmm %yyyy %hh:%ii:%ss", Date())
Debug FormatDate2("%dddd %dd %mmmm %yyyy %hh:%ii:%ss", Date(), #PB_Language_English)
Debug FormatDate2("%dddd %dd %mmmm %yyyy %hh:%ii:%ss", Date(), #PB_Language_French)
Debug FormatDate2("%dddd %dd %mmmm %yyyy %hh:%ii:%ss", Date(), #PB_Language_German)
Debug FormatDate2("%dddd %dd %mmmm %yyyy %hh:%ii:%ss", Date(), #PB_Language_Italian)
Debug FormatDate2("%dddd %dd %mmmm %yyyy %hh:%ii:%ss", Date(), #PB_Language_Portuguese)
Debug FormatDate2("%dddd %dd %mmmm %yyyy %hh:%ii:%ss", Date(), #PB_Language_Spanish)