Page 2 of 2

Posted: Thu Jan 18, 2007 8:49 am
by gnozal
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...
Well, not here !
(Using Win NT4 sp6 FR)

Posted: Thu Jan 18, 2007 9:07 am
by Flype
it looks like that, at least in french, months and weekdays are all lower case (tested on WinXP).

Posted: Thu Jan 18, 2007 12:19 pm
by Shardik
gnozal wrote: Well, not here !
(Using Win NT4 sp6 FR)
Flype wrote: it looks like that, at least in french, months and weekdays are all lower case (tested on WinXP).
Strange!!!
The german versions of
- WinNT 4 SP6
- Win2K Server
- WinXP SP2
all display correctly the first character of day and month in uppercase... :shock:

At home I am also able to test Win95A, Win95C, Win98 and Win98SE :?

What do other users experience with other national settings?

Posted: Thu Jan 18, 2007 3:14 pm
by Flype
Well i think it is a local setting.
Upper case or lower case dates depends on the user settings.
So just for french users i will keep my "UCase(Left(result, 1)) + Right(result, Len(result) - 1)" :?

Posted: Thu Jan 18, 2007 10:03 pm
by Flype
for those who are interested here is a cross platform FormatDate().

if it can be of some help.

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)