Logo: Geos Online Print Archiv
G.O.P.A. - Geos Online Print Archiv
26.04.2024 Archiv  #  Recherche  #  Links  #  Kontakt  #  Gästebuch  #  Impressum

Index
Register
Login

Die Anzeige des Archivs erfolgt grafisch. Ändern

Eisprung 9210

Autor: Jürgen Heinisch

Eine von mir seit Jahren gepflegte Programmidee ist das Thema Eisprung. Genauer die Empfängnisverhütung nach der mathematischen Methode von Knaus - Ogino. Einen Programm Vorschlag aus der Zeitschrift für den Commodore C=64 habe ich auf den Vorgänger Commodore VC=20 umgesetzt.

Die Programmidee wanderte fortan mit jedem System mit. Eine Umsetzung erfolgte unter PC/GEOS mit IZL, NewBasic und dem SDK. Auf dem NC9210 soll es einmal eine Version in C++ und eine in Java geben. Bis dahin ist es aber ein weiter Weg. Derweilen habe ich die Berechnungen in der Tabellenkalkulation auf den NC9210 umgesetzt.

Meine dabei gewonnenen Erfahrungen mit dem Datumsformat möchte ich hier weitergeben.

Das Datum wird als Anzahl der Tage seit dem 01.01.1900 berechnet. Dabei wird das Datum 01.01.1900 als 0 dargestellt und der 02.01.1900 als 1 usw.
Der 05.03.2002 hat die Datumszahl = 37320.
Die erste Aufgabe ist also, von einem beliebigen Datum zu der Datumszahl zu kommen. Hat man die Datumszahl, so lassen sich leicht damit Berechnungen anstellen, also z.B.: eine Anzahl Tage hinzuzählen oder den Unterschied zwischen zwei Terminen berechnen.

Zwei Wege habe ich dazu entwickelt. Erst einen umständlichen und dann einen einfacheren, weil ich diese Lösung erst kurz vor Beginn dieses Artikels erarbeiten konnte.

Ein Datum kann in eine Zelle eingeben werden: A1 = 05.03.2002
Aus dem Inhalt der Zelle soll nun die Datumszahl ermittelt werden. Logisch erscheint:

B2 = DATEVALUE(A1)

Diese Anweisung ergibt aber den Fehler: #VALUE

Anders ist es bei der direkten Anweisung:

B2 = DATEVALUE("05.03.02")

Diese Anweisung ergibt die Zahl: 37320.

Wo liegt der Unterschied ? Der Inhalt in Zelle A1, also 05.03.02 ist ein Datum (DATE), der Ausdruck "05.03.02" ist jedoch ein Text. Für Text wird im Allgemeinen der Begriff STRING verwendet. Die Funktion DATEVALUE() erwartet in der Klammer einen STRING. Wird dort aber das Datumsfeld (DATE) aus Zelle A1 übergeben, so muss es zu der Fehlermeldung #VALUE kommen.

Lösung 1
DATEVALUE war für die Aufgabe also nicht geeignet. Die Funktion DATE() erwartet die Übergabe des Datums in Form von Zahlen. Diese in der Reihenfolge: (Jahr;Monat;Tag). So ergibt: DATE(2002;3;5) die Datumszahl: 37320.

Als ersten Lösungsansatz zerlegte ich das Datum auf drei Zellen. A1 für Tag, B1 für Monat und C1 für Jahr. Die Werte werden in diesen Zellen als ganze Zahlen eingegeben: A1 = 5 /B1 =3/C1 =2002

Nun kann berechnet werden mit Zelle

D1 =DATE(C1;B1;A1)

Als Ausgabe erhält man: 37320

Mit Lösung 1 habe ich meine Tabelle Eisprung erstellt und erst beim Erstellen dieser Zeilen zwei weitere Lösungen gefunden.

Lösung 2
In Zelle A1 wird das DATE eingegeben: 05.03.02
Zelle B1 macht aus dem DATE einen STRING: = STRING(A1;0)
Zelle C1 macht aus dem STRING eine ZAHL = VALUE(B1)

Spalte 2 und 3 können zusammengefaßt werden:

DATE in Zelle A1 = 05.03.02
Datumszahl in Zelle B1 =VALUE(STRING(A1 ;0))
Ausgabe: 37320

Lösung 3:
Etwas verbüfft hat mich die unerwartet kurze Lösung:

DATE in Zelle A1 = 05.03.02
Zelle B1 = A1
Ausgabe: 37320

Ausblick
In der nächsten Ausgabe gehen wir auf die Berechnungen zum Eisprung ein.
Eine Ausgabe weiter geht es dann um die Ausgabe der errechneten Werte.

 Tabelle ansicht


 




Dieser Artikel ist Bestandteil von:

Ausgabe 81

! - - - - - M I C R O F I L M - - - - - ! | Editorial | NewDeal 2000 Rel. 4.16 bei BreadBox | Der Preis bei Breadbox | Breadbox Emsemble | ZeditHTM & TvaKatter | GeoVirus | The Wave und GeoWrite - Das Bundle für die eigene Homepage (Teil 1) | Neues aus der GEOS und C64 / 128-Welt | Info Regionalgruppe Baden | Auflösung der Regionalgruppe Hamburg | Nokia Communicator 9210 Treffen 23.03.02 | Hobbytronic & Computershow | Fehlendes Helpfile | Neuer Schoner | Communicator 9210 resetet bei Anruf | Eisprung 9210 | Gedanken zur Zukunf für Geos / NDO | Geos2.x / NDO und MS-DOS 6.22 - Fehler? | OmniGo Speicherkarten


Kurzlink hierhin: http://geos-printarchiv.de/323


Letzte Änderung am 01.11.2019