wDay() [UDF]

Veröffentliche deine funktionierenden Skripte und Funktionen

Moderator: jNizM

BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

wDay() [UDF]

19 Jun 2017, 03:36

Einer unserer kollegen aus dem US/UK forum poste[d|te] ein schönes beispiel wie ein ternary-operator einsetzbar ist. Entgegen der allgemeinen vorgehensweise zum multibel verschwurbelten einzeiler hatte er diesen ähnlich einer continuation-section aufgedröselt. Das liest sich zum programmierzeitpunkt recht noob-friendly und mir fiel dazu ad-hoc ein noobisher verwendungszweck ein ...

Code: Select all

F1::							; drücke F1 um als testfall eine zufallswochentagnummer in den dazugehörigen tagesnamen übersetzen zu lassen.
      Random, dayNo, 1, 7
      MsgBox % dayNo " = " msg := wDay(dayNo)
      Return

wDay(dayNo){
      dayName := dayNo = 1 ? "Sunday"
              :  dayNo = 2 ? "Monday"
              :  dayNo = 3 ? "Tuesday"
              :  dayNo = 4 ? "Wednesday"
              :  dayNo = 5 ? "Thursday"
              :  dayNo = 6 ? "Friday"
              :  dayNo = 7 ? "Saturday"
              :  "ERROR"
      Return % dayName
      }
... der selbst für bekennende ternary-operator-phobiker als leicht(er) verdaulich einzustufen sein sollte.

Ternary-operator schon schön, doch die statische sprachauswahl nervte mich dann doch etwas.
Da ging noch was - no, no bitshift-/dllcall-/COMtralala, still FullMetalBoBo! - und doch ein paar zeilen code gespart :shh:
Spoiler
Hollaröhdulliöh :thumbup:
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: wDay() [UDF]

19 Jun 2017, 03:53

Man könnte bei Fällen die ein Switch Case Statement darstellen auch sehr schön mit Arrays arbeiten:

Code: Select all

getDayName( nr )
{
	static days := [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
	return days.hasKey( nr ) ? days[ nr ] : "Error"
}
Recommends AHK Studio
HotKeyIt
Posts: 2364
Joined: 29 Sep 2013, 18:35
Contact:

Re: wDay() [UDF]

19 Jun 2017, 13:44

Code: Select all

MsgBox % getDayName(1)
getDayName( nr ){
	FormatTime, time,% 19010106+nr, dddd
	return time
}

Return to “Skripte und Funktionen”

Who is online

Users browsing this forum: No registered users and 7 guests