C# Zahl vom Array Abbilden?

3 Antworten

Schau dir mal die Eigenschaften von DateTime an, siehe DateTime Struct (Microsoft Documentation). Dort findest du Hour und Minute. Damit hast du schon deine Zahl für die Stunde und die Minuten.

Die Punkte bekommst du dahin, indem du das Ganze in eine Zeichenkette, also einen String, umbaust. Das könnte zum Beispiel so aussehen:

DateTime now = DateTime.Now;
string anzeige = $"{now.Hour}:{now.Minute}";

In dem Beispiel benutze ich $ - string interpolation (Microsoft C# Referenz), um die Zeichenkette zu formatieren.

wenn du Anzeigen wie hier gezeigt hast, dann sollte das Array anders aussehen. Du zeigst ja in Balken an, nicht in Punkten also eine Ziffer besteht aus maximal 7 Balken. Dafür brauchst du kein Array sondern eine normale 7 Bit Zahl.

Definiere ich die Balken so {Bit0; .. ; Bit6} = {mitte,oben,unten,linksoben,linksunten,rechtsoben,rechtsunten}, dann habe ich für

0 = x1111110 (dez = 126)

1 = x1100000 (dez = 96)

2 = x0110111 (dez = 55)

... usw.

Beim Zugreifen auf die einzelnen Bits dann AND Operatoren nehmen um rauszufinden ob Bit gesetzt ist.

Ich würde meinen, dass du das zusammenbauen kannst, wie du das möchtest. Je mehr Punkte du nimmst, desto besser aufgelöst wirkt es.

Beispiel: Jeder Strich 4 Pixel. Dann hat jede Ziffer die Dimension 8x4 (zwei Striche hoch, einen breit). Du kannst zwischen den beiden senkrechten auch ein Pixel immer auf 0 lassen, dann kommt die Trennung besser rüber.

Und dann hinterlegst du eben, bei welcher Zahl welche Striche auf 1 gesetzt werden (immer alle Pixel gleichzeitig)