Forum: Mikrocontroller und Digitale Elektronik Ich starte neu in C


von Wado U. (racole)


Lesenswert?

Kann mir jemand helfen?

Ich würde gerne ein C-Programm schreiben, das das Alter eines Autos 
berechnet. Das Programm soll aber wissen, dass es vom Datum der 
Zulassung bis heute rechnet. Also sollte ich in der Ausgabe nicht das 
heutige Datum eingeben müssen.
Ich möchte nur das Alter berechnen also nicht Monat und Tag !

Hat jemand einen Tipp oder hat jemand ein c Programm, das das macht?

von Oliver S. (oliverso)


Lesenswert?


von Dirk B. (dirkb2)


Lesenswert?

Schau dir die Funktionen der C-Standardbibliothek an, die in time.h 
deklariert sind.
https://en.cppreference.com/w/c/chrono

von Robert K. (Firma: Zombieland) (rko)


Lesenswert?

Wado U. schrieb:
> Also sollte ich in der Ausgabe nicht das
> heutige Datum eingeben müssen.
Warum einfach, wenn es auch kompliziert geht :-)

von wendelsberg (Gast)


Lesenswert?

Das geht auf einem Mikrocontroller ohne weitere Infrastruktur gar nicht.
Der kennt schlicht die aktuelle Zeit (und damit das aktuelle Datum) 
nicht.

wendelsberg

von Stefan F. (Gast)


Lesenswert?

Geht es überhaupt um Mikrocontroller?

Auf einem PC lässt sich die Programmiersprache besser lernen.

von alda (Gast)


Lesenswert?

1
#include <stdio.h>
2
#include <stdlib.h>
3
#include <string.h>
4
5
int
6
main (void)
7
{
8
   int jahr_zulassung = 2008;
9
10
   int alter = atoi (&__DATE__[7]) - jahr_zulassung;
11
12
   printf ("alda: %d\n", alter);
13
14
   return 0;
15
}

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Wado U. schrieb:
> Ich würde gerne ein C-Programm schreiben
Für welche Zielplattform? Einem PC?

von wendelsberg (Gast)


Lesenswert?

Lothar M. schrieb:
> Einem PC?

Dann wuerde die Frage doch im Forum 
https://www.mikrocontroller.net/forum/pc-programmierung stehen und nicht 
unter https://www.mikrocontroller.net/forum/mikrocontroller-elektronik 
stehen, oder?

wendelsberg

von alda (Gast)


Lesenswert?

alda schrieb:
> int alter = atoi (&__DATE__[7]) - jahr_zulassung;

Man muss aber das Programm an jedem 01.01. neu kompilieren ;-)

von leo (Gast)


Lesenswert?

alda schrieb:
> int alter = atoi (&__DATE__[7]) - jahr_zulassung;

Glaubst du, dass sich _DATE_ automagisch aendert?

leo

von Rolf M. (rmagnus)


Lesenswert?

alda schrieb:
> alda schrieb:
>> int alter = atoi (&__DATE__[7]) - jahr_zulassung;
>
> Man muss aber das Programm an jedem 01.01. neu kompilieren ;-)

Oder es in cling ausführen.

von Wado U. (racole)


Lesenswert?

kann man das auch ohne die Zeitfunktion machen ?

von Erwin D. (Gast)


Lesenswert?

Wado U. schrieb:
> kann man das auch ohne die Zeitfunktion machen ?

Also du meinst einen Zeitraum (Alter des Autos) ermitteln ohne die Zeit 
zu verwenden? Wie stellst du dir das vor?

von Stefan F. (Gast)


Lesenswert?

Wado U. schrieb:
> kann man das auch ohne die Zeitfunktion machen ?

Irgendwie musst du rechnen. Wenn nicht mit dieser Funktion, dann halt 
mit einem eigenen Algorithmus. Aber von ganz alleine tut sich da nichts.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Vielleicht kann man die Karosserie des Autos mit einer Flex aufschneiden 
und dann die Jahresringe zaehlen. Bei Baeumen funktioniert das so.
Dann braucht man nichtmal C.

SCNR
WK

von Udo S. (urschmitt)


Lesenswert?


von Mark B. (markbrandis)


Lesenswert?

Wado U. schrieb:
> Ich möchte nur das Alter berechnen also nicht Monat und Tag !

Rein logisch betrachtet:
Ein Alter ist die Differenz zwischen zwei Datumsangaben. Mein Alter ist 
zum Beispiel die Differenz zwischen heute, dem 22.12.2020 und meinem 
Geburtstag.

Wenn nun eine Funktion ein Alter ausrechnen soll, dann braucht sie dafür 
zwingend zwei Datumsangaben. Da kommt man nicht drumrum. Das aktuelle 
Datum von heute wird man gewiss vom Betriebssystem bekommen können, wenn 
man es lieb und freundlich danach fragt. :-)

Also, für welche Umgebung von Hardware und Betriebssystem soll die 
Lösung erstellt werden?

von Udo S. (urschmitt)


Lesenswert?

Dergute W. schrieb:
> Bei Baeumen funktioniert das so.

Du schneidest Bäume mit der Flex?

SCNR :-)

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Udo S. schrieb:
> Du schneidest Bäume mit der Flex?

Ist wohl so einer.
Ist das Kunst, oder kann das weg?

von Udo S. (urschmitt)


Lesenswert?

Stefan, +1! :-)

Um für den To noch was sinnvolles zu sagen:
Wado, werde dir bewusst in welcher Einheit du das Datum benutzen willst 
um die Differenz auszurechnen
Und kläre in welcher Einheit du das Alter ausgeben willst.
Und in welcher Genauigkeit.

von Rolf M. (rmagnus)


Lesenswert?

Stefan ⛄ F. schrieb:
> Ist das Kunst, oder kann das weg?

Sieht aus wie eine Rakete, bei der der Treibstoff im falschen Ende 
hochgegangen ist :)

von Dietrich L. (dietrichl)


Lesenswert?

Udo S. schrieb:
> Du schneidest Bäume mit der Flex?

Ich hab das mal bei einer Glyzine gemacht - da war allerdings noch ein 
Stahlseil eingewachsen ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.