amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Amiga, AmigaOS 4 > C-Programmierer gesucht (winzig kleine Programmänderung) [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

24.08.2005, 11:14 Uhr

aPEX
Posts: 4692
Nutzer
Hallo Leute,

ich verwende an meinen Amiga 1000 eine TicTac Uhr am Joystickport 2.
Die Software zum auslesen der Uhr heisst auch TicTac, laufen tut
das ganze unter der WB 1.3.3 Deutsch und Kick 1.3.

Allerdings wird mir als Datum immer das Jahr 1905 statt 2005
angezeigt.

Gibt es einen Programmierer der sich mal den Minisource anschauen
kann und irgendwo was verbiegen das als Jahr dann 2005 angezeigt
wird?

Programm + Source + Schaltplan findet ihr > HIER <
--
cu, aPEX

:commo: http://www.a1k.org - Die Amiga 1000 & Phoenix Community :commo:
A1000-512KB Chip,8MB Fast,BlizzardTurboMemory,68010P12,ALF-Kontroller
Phoenix, A500+, A600, A1200, A4000 ... http://phase5.a1k.org





[ Dieser Beitrag wurde von aPEX am 24.08.2005 um 11:15 Uhr editiert. ]

[ Dieser Beitrag wurde von aPEX am 24.08.2005 um 11:16 Uhr editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

24.08.2005, 11:58 Uhr

KneteKnut
Posts: 148
Nutzer
@aPEX:
So auf die schnelle würde ich sagen das du diese Zeile
abändern mußt:

...
z = ToBeRead.TDyear+1900;
...

Das sieht schwer nach dem klassischen "Jahr 2000" Problem aus ;)
Einfach ändern und dann hast du ein "Jahr 2100" Problem ;D


mfg
KneteKnut

[ - Antworten - Zitieren - Direktlink - ]

24.08.2005, 12:18 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von KneteKnut:
@aPEX:
So auf die schnelle würde ich sagen das du diese Zeile
abändern mußt:

...
z = ToBeRead.TDyear+1900;
...

Das sieht schwer nach dem klassischen "Jahr 2000" Problem aus ;)
Einfach ändern und dann hast du ein "Jahr 2100" Problem ;D


Anstatt einfach nur 1900 durch 2000 zu ersetzen, kannst du natürlich auch eine etwas kompliziertere Lösdung wählen, z.B.

if (ToBeRead.TDyear > 77)
z = ToBeRead.TDyear+1900;
else
z = ToBeRead.TDyear+2000;

Tschüß,

[ Dieser Beitrag wurde von NoImag am 24.08.2005 um 12:18 Uhr editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

24.08.2005, 12:23 Uhr

Flinx
Posts: 1073
Nutzer
@NoImag:

Damit ersetzt Du das Jahr-2100-Problem durch ein Jahr-2077-Problem. Wo ist der Vorteil, wenn die Uhr immer richtig gehen soll?
Etwas anderes wäre es natürlich, falls für obskure Anwendungen das Datum tatsächlich mal zurückgestellt werden muß.

[ - Antworten - Zitieren - Direktlink - ]

24.08.2005, 12:27 Uhr

NoImag
Posts: 1050
Nutzer
Zitat:
Original von Flinx:
@NoImag:

Damit ersetzt Du das Jahr-2100-Problem durch ein Jahr-2077-Problem. Wo ist der Vorteil, wenn die Uhr immer richtig gehen soll?
Etwas anderes wäre es natürlich, falls für obskure Anwendungen das Datum tatsächlich mal zurückgestellt werden muß.


Der Vorteil liegt tatsächlich in letzterem Fall. Außerdem hat man dann dasselbe Verhalten wie alle Amiga-Software (inkl. Locale), die nur zweistellige Jahreszahlen benutzen.

Tschüß,


[ - Antworten - Zitieren - Direktlink - ]

24.08.2005, 13:06 Uhr

aPEX
Posts: 4692
Nutzer
Zitat:
Original von KneteKnut:
Das sieht schwer nach dem klassischen "Jahr 2000" Problem aus ;)
Einfach ändern und dann hast du ein "Jahr 2100" Problem ;D


Ein Jahr 2100 Problem ist mir egal. :) Da kann sich dann die
nächste Generation A1000 User darum kümmern. :)

--
cu, aPEX

:commo: http://www.a1k.org - Die Amiga 1000 & Phoenix Community :commo:
A1000-512KB Chip,8MB Fast,BlizzardTurboMemory,68010P12,ALF-Kontroller
Phoenix, A500+, A600, A1200, A4000 ... http://phase5.a1k.org


[ - Antworten - Zitieren - Direktlink - ]

24.08.2005, 13:07 Uhr

aPEX
Posts: 4692
Nutzer
Zitat:
Original von NoImag:
Anstatt einfach nur 1900 durch 2000 zu ersetzen, kannst du natürlich auch eine etwas kompliziertere Lösdung wählen, z.B.

if (ToBeRead.TDyear > 77)
z = ToBeRead.TDyear+1900;
else
z = ToBeRead.TDyear+2000;


Ich wäre froh ich könnte überhaupt was programmieren (ausser HTML). :)
Kannst du/jemand das mit den Änderungen neu kompilieren?


--
cu, aPEX

:commo: http://www.a1k.org - Die Amiga 1000 & Phoenix Community :commo:
A1000-512KB Chip,8MB Fast,BlizzardTurboMemory,68010P12,ALF-Kontroller
Phoenix, A500+, A600, A1200, A4000 ... http://phase5.a1k.org


[ - Antworten - Zitieren - Direktlink - ]

24.08.2005, 13:11 Uhr

Flinx
Posts: 1073
Nutzer
Zitat:
Original von NoImag:
Außerdem hat man dann dasselbe Verhalten wie alle Amiga-Software (inkl. Locale), die nur zweistellige Jahreszahlen benutzen.


Auch ein Argument. Wenn der A1000 2078 noch funktioniert, muß der Code dann eben nochmal übersetzt werden. Besser noch macht sich aPEX gleich Versionen für die nächsten paar Jahrhunderte.

[ - Antworten - Zitieren - Direktlink - ]

24.08.2005, 14:04 Uhr

Flinx
Posts: 1073
Nutzer
Zitat:
Original von aPEX:

Kannst du/jemand das mit den Änderungen neu kompilieren?


Mail mit beiden Varianten ist unterwegs.

[ - Antworten - Zitieren - Direktlink - ]

24.08.2005, 17:31 Uhr

Gazelle
Posts: 151
Nutzer
Zitat:
Original von Flinx:
Mail mit beiden Varianten ist unterwegs.


Ich hoffe mal du hast nicht nur die Ausgabe() Funktion geändert. Wenn man "TicTac load" ausführt, wobei die Systemzeit mitgestellt wird, kommt es auch zu einem Fehler, falls ich den Code richtig lese.

Am einfachsten ist es in der Funktion ReadTicTac() nach der Zeile:
ToBeRead.TDyear = BCDToInt(TicTacTime[5]);
noch:
if (ToBeRead.TDyear < 78) ToBeRead.TDyear += 100;
einzufügen.

Damit sollte das Programm von 1978 bis 2077 korrekt laufen.

[ - Antworten - Zitieren - Direktlink - ]

24.08.2005, 17:46 Uhr

fisch08
Posts: 692
Nutzer
Zitat:
Original von aPEX:

Ein Jahr 2100 Problem ist mir egal. :) Da kann sich dann die
nächste Generation A1000 User darum kümmern. :)



Genau: Habe zwar heute durch die Blöd Zeitung ermitteln lassen, dass ich noch 61 Jahre zu leben habe, damit werde ich aber nicht die 2100 Grenze überschreiten.

Nun denn: Dann sind es unsere Kinder und Enkel, die auf OS 4 warten und von besseren Zeiten träumen...

Gruß
Fisch08

--
Um den Spamfilter zu umgehen: Bei direkter Antwort per Mail bitte "[Amiga]" ins Subject: Nur so 100%ige Garantie, dass man nicht im Filter landet!

[ - Antworten - Zitieren - Direktlink - ]

24.08.2005, 19:59 Uhr

Flinx
Posts: 1073
Nutzer
Zitat:
Original von Gazelle:
Ich hoffe mal du hast nicht nur die Ausgabe() Funktion geändert.


Doch. Gut, daß Du genauer nachgesehen hast. Ich habe nur fix den Compiler angeworfen und das Testen aPEX überlassen. Aber diese Änderung kriegen wir auch noch hin.

[ - Antworten - Zitieren - Direktlink - ]

25.08.2005, 20:38 Uhr

aPEX
Posts: 4692
Nutzer
Vielen Dank an Ralf der das Problem behoben hat! ;)
Die neue Version gibts im a1k.org Forum.

--
cu, aPEX

:commo: http://www.a1k.org - Die Amiga 1000 & Phoenix Community :commo:
A1000-512KB Chip,8MB Fast,BlizzardTurboMemory,68010P12,ALF-Kontroller
Phoenix, A500+, A600, A1200, A4000 ... http://phase5.a1k.org


[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Amiga, AmigaOS 4 > C-Programmierer gesucht (winzig kleine Programmänderung) [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.