For i = 1 to 12 ? LocalMonthName1(i, .T.), LocalMonthName2(i) EndFor For i = 1 to 7 ? LocalWeekdayName1(i, .T.), LocalWeekdayName2(i) EndFor Function LocalMonthName1(tnMonth, tlAbbrev) If (VarType(tnMonth) != 'N') Or (tnMonth < 1) Or (tnMonth > 12) Or (VarType(tlAbbrev) != 'L') Error 11 EndIf Local buf, n Declare Long GetLocaleInfo In Win32API ; Long Locale, Long LCType, String @ lpLCData, Long cchData buf = Replicate(Chr(0), 16) n = GetLocaleInfo(0, IIf(tlAbbrev, 0x43, 0x37) + tnMonth, @buf, 16) Return Left(buf, n - 1) Function LocalMonthName2(tnMonth, tlAbbrev) If (VarType(tnMonth) != 'N') Or (tnMonth < 1) Or (tnMonth > 12) Or (VarType(tlAbbrev) != 'L') Error 11 EndIf Local bstr, buf, n Declare Long VarMonthName In Oleaut32.dll ; Long iMonth, Long fAbbrev, Long dwFlags, Long @ pbstrOut Declare Long WideCharToMultiByte In Win32API ; Long CodePage, Long dwFlags, Long lpWideStr, Long cchWide, ; String @ lpMultiByte, Long cbMultiByte, Long lpDefaultChar, Long lpUsedDefaultChar Declare Long SysStringLen In Oleaut32.dll Long bstr Declare SysFreeString In Oleaut32.dll Long bstr bstr = 0 VarMonthName(tnMonth, Iif(tlAbbrev, 1, 0), 0, @bstr) buf = Replicate(Chr(0), 16) n = WideCharToMultiByte(0, 0, bstr, SysStringLen(bstr), @buf, 16, 0, 0) SysFreeString(bstr) Return Left(buf, n) Function LocalWeekdayName1(tnWeekday, tlAbbrev) If (VarType(tnWeekday) != 'N') Or (tnWeekday < 1) Or (tnWeekday > 7) Or (VarType(tlAbbrev) != 'L') Error 11 EndIf Local buf, n Declare Long GetLocaleInfo In Win32API ; Long Locale, Long LCType, String @ lpLCData, Long cchData buf = Replicate(Chr(0), 16) n = GetLocaleInfo(0, IIf(tlAbbrev, 0x30, 0x29) + tnWeekday, @buf, 16) Return Left(buf, n - 1) Function LocalWeekdayName2(tnWeekday, tlAbbrev) If (VarType(tnWeekday) != 'N') Or (tnWeekday < 1) Or (tnWeekday > 7) Or (VarType(tlAbbrev) != 'L') Error 11 EndIf Local bstr, buf, n Declare Long VarWeekdayName In Oleaut32.dll ; Long iWeekday, Long fAbbrev, Long iFirstDay, Long dwFlags, Long @ pbstrOut Declare Long WideCharToMultiByte In Win32API ; Long CodePage, Long dwFlags, Long lpWideStr, Long cchWide, ; String @ lpMultiByte, Long cbMultiByte, Long lpDefaultChar, Long lpUsedDefaultChar Declare Long SysStringLen In Oleaut32.dll Long bstr Declare SysFreeString In Oleaut32.dll Long bstr bstr = 0 VarWeekdayName(tnWeekday, Iif(tlAbbrev, 1, 0), 0, 0, @bstr) buf = Replicate(Chr(0), 16) n = WideCharToMultiByte(0, 0, bstr, SysStringLen(bstr), @buf, 16, 0, 0) SysFreeString(bstr) Return Left(buf, n)>Hi All,