๐Ÿš€ go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: de.comp.lang.c++
9 messages
9 total messages Started by Markus Huebner Tue, 09 Jan 1996 09:03
Datum <-> long
#1193
Author: Markus Huebner
Date: Tue, 09 Jan 1996 09:03
18 lines
1068 bytes
Hi, 

ich suche eine Funktion die eine Umwandlung eines Datums in
einen eindeutigen long-Wert vornimmmt und/oder umgekehrt. 
Hat jemand so eine Funktion gesehen?
Wenn ja: Wo kann ich Sie mir besorgen?

--- Es ist echt dringend! ---

Ciao Markus.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Markus Huebner 		+ Phone: 08191/6707			     +
+ Eichendorffstr. 6		+					     +
+ D-86916 Kaufering		+ E-Mail: huebnerm@informatik.tu-muenchen.de +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Intel Inside - Wir haben das Problem eingekreist.
Re: Datum <-> long
#1197
Author: Walter Sommergruber
Date: Tue, 09 Jan 1996 09:38
16 lines
1063 bytes
Markus Huebner  (huebnerm@informatik.tu-muenchen.de)
wrote on 09.01.96 about "Datum <-> long":

> ich suche eine Funktion die eine Umwandlung eines Datums in
> einen eindeutigen long-Wert vornimmmt und/oder umgekehrt.
> Hat jemand so eine Funktion gesehen?
> Wenn ja: Wo kann ich Sie mir besorgen?

Von Kai Hofmann gibt es eine sehr umfangreiche Datums-Library,
zu finden unter

      http://www.informatik.uni-bremen.de/~i07m/Kalender.html

---                                     Take a look at ...
Walter Sommergruber                                    The Software Site
email: wsog@softsite.co.at           http://www.softsite.co.at/softsite/
Re: Datum <-> long
#1198
Author: Watson
Date: Tue, 09 Jan 1996 11:30
23 lines
1324 bytes
Markus Huebner wrote:

> ich suche eine Funktion die eine Umwandlung eines Datums in
> einen eindeutigen long-Wert vornimmmt und/oder umgekehrt.
> Hat jemand so eine Funktion gesehen?
> Wenn ja: Wo kann ich Sie mir besorgen?
Markus,

hier ein Vorschlag:

# define date(year, month, day) 	((year*10000)+(month*100)+day)
# define year(date)			(date / 10000)
# define month(date)			((date % 10000)/100)
# define day(date)			(date % 100)

Not tested, but hopefully working :-)
Wenn Du allerdings 'date' im Unix-Sinne (inkl. Uhrzeit) meinst,
ist das hier natuerlich unzureichend...
-- 
*	Greetinx,
	Watson (sayegh@fokus.gmd.de)
	more personal details at:
	http://www.fokus.gmd.de/ovma/employees/sayegh/entry.html
Re: Datum <-> long
#1200
Author: Watson
Date: Tue, 09 Jan 1996 11:37
15 lines
1118 bytes
Watson wrote:

> # define date(year, month, day)         ((year*10000)+(month*100)+day)
> # define year(date)                     (date / 10000)
> # define month(date)                    ((date % 10000)/100)
> # define day(date)                      (date % 100)

Ich vergass zu erwaehnen, dass diese Makros im Jahr
2147 nur noch mit unsigned longs zu verwenden sind.
Im Jahre 4294 werden sie ungueltig ;-)
-- 
*	Greetinx,
	Watson (sayegh@fokus.gmd.de)
	more personal details at:
	http://www.fokus.gmd.de/ovma/employees/sayegh/entry.html
Re: Datum <-> long
#1201
Author: Markus Huebner
Date: Tue, 09 Jan 1996 12:00
50 lines
2204 bytes
In article <30F251CC.3AD3@fokus.gmd.de>, Watson <sayegh@fokus.gmd.de> writes:

|> > ich suche eine Funktion die eine Umwandlung eines Datums in
|> > einen eindeutigen long-Wert vornimmmt und/oder umgekehrt.
|> > Hat jemand so eine Funktion gesehen?
|> > Wenn ja: Wo kann ich Sie mir besorgen?
|> Markus,
|> 
|> hier ein Vorschlag:
|> 
|> # define date(year, month, day) 	((year*10000)+(month*100)+day)
|> # define year(date)			(date / 10000)
|> # define month(date)			((date % 10000)/100)
|> # define day(date)			(date % 100)
|> 
|> Not tested, but hopefully working :-)
|> Wenn Du allerdings 'date' im Unix-Sinne (inkl. Uhrzeit) meinst,
|> ist das hier natuerlich unzureichend...

Etwas genauer:
Unter einem Datum verstehe ich ein Record / Struct aus 

	Jahr, Monat und Tag ohne Uhrzeit.

Also z.B.:

struct 
{
   int date;
   int month;
   int day;
} date;

Zur Umwandlung noch folgendes (habe ich vorhin vergessen):
Zwei auf einanderfolgende Tage sollten auch zwei aufeinanderfolgende
long-Werte haben. Es sollten also schon Monate mit 28,30,31 Tagen und
im Schaltjahr auch der Februar mit 29 Tagen beruecksichtigt werden.

z.B.: Wenn der 31.01.96 den Wert 10000 hat (beliebige Annahme), so sollte
der 01.02.96 den Wert 10001 besitzen.

Ciao, Markus.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Markus Huebner 		+ Phone: 08191/6707			     +
+ Eichendorffstr. 6		+					     +
+ D-86916 Kaufering		+ E-Mail: huebnerm@informatik.tu-muenchen.de +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Intel Inside - Wir haben das Problem eingekreist.
Re: Datum <-> long
#1222
Author: Frank Aubertin
Date: Wed, 10 Jan 1996 12:04
51 lines
2331 bytes
Markus Huebner (huebnerm@informatik.tu-muenchen.de) wrote:

: In article <30F251CC.3AD3@fokus.gmd.de>, Watson <sayegh@fokus.gmd.de> writes:

: |> > ich suche eine Funktion die eine Umwandlung eines Datums in
: |> > einen eindeutigen long-Wert vornimmmt und/oder umgekehrt.
: |> > Hat jemand so eine Funktion gesehen?
: |> > Wenn ja: Wo kann ich Sie mir besorgen?
: |> Markus,
: |> 
: |> hier ein Vorschlag:
: |> 
: |> # define date(year, month, day) 	((year*10000)+(month*100)+day)
: |> # define year(date)			(date / 10000)
: |> # define month(date)			((date % 10000)/100)
: |> # define day(date)			(date % 100)
: |> 
: |> Not tested, but hopefully working :-)
: |> Wenn Du allerdings 'date' im Unix-Sinne (inkl. Uhrzeit) meinst,
: |> ist das hier natuerlich unzureichend...

: Etwas genauer:
: Unter einem Datum verstehe ich ein Record / Struct aus 

: 	Jahr, Monat und Tag ohne Uhrzeit.

: Also z.B.:

: struct 
: {
:    int date;
:    int month;
:    int day;
: } date;

: Zur Umwandlung noch folgendes (habe ich vorhin vergessen):
: Zwei auf einanderfolgende Tage sollten auch zwei aufeinanderfolgende
: long-Werte haben. Es sollten also schon Monate mit 28,30,31 Tagen und
: im Schaltjahr auch der Februar mit 29 Tagen beruecksichtigt werden.

: z.B.: Wenn der 31.01.96 den Wert 10000 hat (beliebige Annahme), so sollte
: der 01.02.96 den Wert 10001 besitzen.

: Ciao, Markus.

: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
: + Markus Huebner 		+ Phone: 08191/6707			     +
: + Eichendorffstr. 6		+					     +
: + D-86916 Kaufering		+ E-Mail: huebnerm@informatik.tu-muenchen.de +
: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
: Intel Inside - Wir haben das Problem eingekreist.
Re: Datum <-> long
#1224
Author: Haiko Emmel
Date: Wed, 10 Jan 1996 22:18
45 lines
1965 bytes
huebnerm@informatik.tu-muenchen.de (Markus Huebner) wrote:

>|> > ich suche eine Funktion die eine Umwandlung eines Datums in
>|> > einen eindeutigen long-Wert vornimmmt und/oder umgekehrt.
>|> > Hat jemand so eine Funktion gesehen?
>|> > Wenn ja: Wo kann ich Sie mir besorgen?
>|> Markus,
>Etwas genauer:
>Zur Umwandlung noch folgendes (habe ich vorhin vergessen):
>Zwei auf einanderfolgende Tage sollten auch zwei aufeinanderfolgende
>long-Werte haben. Es sollten also schon Monate mit 28,30,31 Tagen und
>im Schaltjahr auch der Februar mit 29 Tagen beruecksichtigt werden.
>z.B.: Wenn der 31.01.96 den Wert 10000 hat (beliebige Annahme), so sollte
>der 01.02.96 den Wert 10001 besitzen.

Hallo Markus,

vielleicht kannst Du die Bibliotheksfunktion 

time_t mktime(struct tm *t) verwenden. Sie wandelt das Datum (und die
Zeit) in der Struktur in die Anzahl Sekunden nach 1.1.1970 um. Um
diese Zahl dann in eine Tagesangabe umzuwandeln brauchst Du nur noch
durch die Anzahl der Sekunden pro Tag (86400) zu dividieren. Diese
Funktion ist in Borland C++ verfรผgbar und ist angeblich
ANSI-kompatibel.

Also:

long dateAsLong(int day, int month, int year)
{
	struct tm tempDate;
	tempDate.tm_sec=0;
	tempDate.tm_min=0;
	tempDate.tm_hour=0;
	tempDate.tm_mday=day;
	tempDate.tm_mon=month;
	tempDate.tm_year=year;
	tempDate.tm_isdst=-1;		// Sommerzeit
	
	return mktime(&tempDate)/86400;
}

Hoffentlich klappts,
Gruss
Haiko
Re: Datum <-> long
#1270
Author: Alexander Rossner
Date: Thu, 11 Jan 1996 20:41
20 lines
1114 bytes
Markus Huebner (huebnerm@informatik.tu-muenchen.de) wrote:

: Hi, 

: ich suche eine Funktion die eine Umwandlung eines Datums in
: einen eindeutigen long-Wert vornimmmt und/oder umgekehrt. 
: Hat jemand so eine Funktion gesehen?
: Wenn ja: Wo kann ich Sie mir besorgen?

: --- Es ist echt dringend! ---

benutzte doch den (unix) Standard, naemlich die Anzahl von Sekunden seit
dem 1.1.1970. In den 32 Bit eines Long Wertes kann man damit jede Sekunde
bis zum Jahr 2106 darstellen. Fuer diese Darstellung gibt es wie gesagt 
in jeder mir bekannten C-Library Umwandlungsfunktionen (time, ctime, 
gettimeofday, ...).

alex
-- 
 Alexander Rossner on rossi.han.de,   private site, Hannover/Germany
Re: Datum <-> long
#1301
Author: Walter Sommergruber
Date: Tue, 16 Jan 1996 16:42
16 lines
1063 bytes
Markus Huebner  (huebnerm@informatik.tu-muenchen.de)
wrote on 09.01.96 about "Datum <-> long":

> ich suche eine Funktion die eine Umwandlung eines Datums in
> einen eindeutigen long-Wert vornimmmt und/oder umgekehrt.
> Hat jemand so eine Funktion gesehen?
> Wenn ja: Wo kann ich Sie mir besorgen?

Von Kai Hofmann gibt es eine sehr umfangreiche Datums-Library,
zu finden unter

      http://www.informatik.uni-bremen.de/~i07m/Kalender.html

---                                     Take a look at ...
Walter Sommergruber                                    The Software Site
email: wsog@softsite.co.at           http://www.softsite.co.at/softsite/
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads