Verfasst: 30.08.2005 15:50
Okay, probieren wir es mal:Ich hoffe der Test ist für alle 3 Funktionen gleichberechtigt. Die schönste (die erste) ist Wohl am langsamsten, aber weniger zu tippen 
Code: Alles auswählen
Procedure.s GetMonthName(nValue.l)
If nValue > 0
ProcedureReturn StringField("Januar,Februar,März,April,Mai,Juni,July,August,September,Oktober,November,Dezember", nValue, ",")
EndIf
EndProcedure
Procedure.s SelectMonthName(nValue.l)
Protected Result.s
Select nValue
Case 1 : Result = "Januar"
Case 2 : Result = "Februar"
Case 3 : Result = "März"
Case 4 : Result = "April"
Case 5 : Result = "Mai"
Case 6 : Result = "Juni"
Case 7 : Result = "July"
Case 8 : Result = "August"
Case 9 : Result = "September"
Case 10 : Result = "Oktober"
Case 11 : Result = "November"
Case 12 : Result = "Dezember"
EndSelect
ProcedureReturn Result
EndProcedure
Procedure.s IfMonthName(nValue.l)
Protected Result.s
If nValue = 1 : Result = "Januar"
ElseIf nValue = 2 : Result = "Februar"
ElseIf nValue = 3 : Result = "März"
ElseIf nValue = 4 : Result = "April"
ElseIf nValue = 5 : Result = "Mai"
ElseIf nValue = 6 : Result = "Juni"
ElseIf nValue = 7 : Result = "July"
ElseIf nValue = 8 : Result = "August"
ElseIf nValue = 9 : Result = "September"
ElseIf nValue = 10 : Result = "Oktober"
ElseIf nValue = 11 : Result = "November"
ElseIf nValue = 12 : Result = "Dezember"
EndIf
ProcedureReturn Result
EndProcedure
; Test 1
Start = ElapsedMilliseconds()
For I = 1 To 1000000
For J = 1 To 12
GetMonthName(J)
Next
Next
MessageRequester("GetMonthName", Str(ElapsedMilliseconds() - Start))
; Test 2
Start = ElapsedMilliseconds()
For I = 1 To 1000000
For J = 1 To 12
SelectMonthName(J)
Next
Next
MessageRequester("SelectMonthName", Str(ElapsedMilliseconds() - Start))
; Test 3
Start = ElapsedMilliseconds()
For I = 1 To 1000000
For J = 1 To 12
IfMonthName(J)
Next
Next
MessageRequester("IfMonthName", Str(ElapsedMilliseconds() - Start))
