Basic Univers
Import "kernel32.lib"
GetCalendarInfoA(lcID.l, calID.l, calType.l, *lpCalData, cchData.l, *lpValue)
EndImport
Procedure.s GetCalendarInfo(type.l)
Protected result.s = Space(64)
If GetCalendarInfoA(#LOCALE_USER_DEFAULT, #CAL_GREGORIAN, type, @result, 64, 0)
ProcedureReturn UCase(Left(result, 1)) + Right(result, Len(result) - 1)
EndIf
EndProcedure
Procedure.s GetDateFormat(mask.s, date.l)
Protected st.SYSTEMTIME, result.s = Space(64)
st\wDay = Day(date)
st\wMonth = Month(date)
st\wYear = Year(date)
If GetDateFormat_(#LOCALE_USER_DEFAULT, 0, @st, mask, @result, 64)
ProcedureReturn UCase(Left(result, 1)) + Right(result, Len(result) - 1)
EndIf
EndProcedure
Procedure.s FormatDate1(mask.s, date.l)
mask = ReplaceString(mask, "%dddd", StringField("Dimanche,Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi", DayOfWeek(date) + 1, ","))
mask = ReplaceString(mask, "%ddd", StringField("Dim.,Lun.,Mar.,Mer.,Jeu.,Ven.,Sam.", DayOfWeek(date) + 1, ","))
mask = ReplaceString(mask, "%mmmm", StringField("Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre", Month(date), ","))
mask = ReplaceString(mask, "%mmm", StringField("Janv.,Févr.,Mars,Avr.,Mai,Juin,Juil.,Août,Sept.,Oct.,Nov.,Déc.", Month(date), ","))
ProcedureReturn FormatDate(mask, date)
EndProcedure
Procedure.s FormatDate2(mask.s, date.l)
mask = ReplaceString(mask, "%dddd", GetDateFormat("dddd", date))
mask = ReplaceString(mask, "%ddd", GetDateFormat("ddd", date))
mask = ReplaceString(mask, "%mmmm", GetDateFormat("MMMM", date))
mask = ReplaceString(mask, "%mmm", GetDateFormat("MMM", date))
ProcedureReturn FormatDate(mask, date)
EndProcedure
Procedure.s FormatDate3(mask.s, date.l)
mask = ReplaceString(mask, "%dddd", GetCalendarInfo(#CAL_SDAYNAME1 + DayOfWeek(date) - 1))
mask = ReplaceString(mask, "%ddd", GetCalendarInfo(#CAL_SABBREVDAYNAME1 + DayOfWeek(date) - 1))
mask = ReplaceString(mask, "%mmmm", GetCalendarInfo(#CAL_SMONTHNAME1 + Month(date) - 1))
mask = ReplaceString(mask, "%mmm", GetCalendarInfo(#CAL_SABBREVMONTHNAME1 + Month(date) - 1))
ProcedureReturn FormatDate(mask, date)
EndProcedure
Debug FormatDate1("%ddd %dd %mmm %yyyy %hh:%ii:%ss", Date())
Debug FormatDate2("%ddd %dd %mmm %yyyy %hh:%ii:%ss", Date())
Debug FormatDate3("%ddd %dd %mmm %yyyy %hh:%ii:%ss", Date())
Debug FormatDate1("%dddd %dd %mmmm %yyyy %hh:%ii:%ss", Date())
Debug FormatDate2("%dddd %dd %mmmm %yyyy %hh:%ii:%ss", Date())
Debug FormatDate3("%dddd %dd %mmmm %yyyy %hh:%ii:%ss", Date())