Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hi leute könnte mir jemand von euch sagen wie ich in C das aktuelle Datum ausgeben kann?

Die Zeit kann ich ja schon ausgeben aber das Datum noch nicht!Muss man es auch mit #include<time.h> machen!

Hallo,

Du mußt dafür die time.h includieren.


time_t timer;
struct tm *tblock;
/* Erhält die Tageszeit */
timer = time(NULL);
/* Wandelt Datum und Zeit in eine Struktur um */
tblock = localtime(&timer);

char buf[30];
sprintf(buf,"%04d%02d%02d%02d%02d%02d",tblock->tm_year+1900,tblock->tm_mon+1,tblock->tm_mday,tblock->tm_hour,tblock->tm_min,tblock->tm_sec);
[/code]

Frank

Hallo,

Hallo,

Du mußt dafür die time.h includieren.


  sprintf(buf,"%04d%02d%02d%02d%02d%02d",tblock->tm_year+1900,tblock->tm_mon+1,tblock->tm_mday,tblock->tm_hour,tblock->tm_min,tblock->tm_sec);

Frank

Zur Konvertierung eines "struct tm *" sollte man besser auf strftime() zurückgreifen, von Hause aus eine Unmenge an Formaten bietet und man sich die strings nicht mit sprintf() zusammenbasteln muss.

Nic

Hab da schon einmal eine Lösung gefunden!Kann sie aber nicht so richtig verstehen kann sie mir einer von euch vielleicht erklären?

#include <stdio.h> /* puts, size_t */

#include <time.h> /* strftime, time_t, localtime */

#include <locale.h> /* setlocale, LC_ALL */

#define SIZE 128

static void print( time_t const date )

{ char buff[ SIZE ];

if( strftime( buff, SIZE, "%A %x", localtime( &date )))

puts( buff );

getchar();

}

#undef SIZE

int main( void ){ time_t const date = time( 0 );

setlocale( LC_ALL, "" );

if( date !=( time_t )-1 )print( date );

}

Hallo,

das gibts eigentlich nicht viel zu erklären. strftime() arbeitet - ähnlich wie printf - mit Format-Strings. %A steht dabei für den Namen des Wochentags, %x für das Datum bezogen auf die gesetzte locale. Ein komplette Beschreibung der Format-Strings findest Du in der entsprechende Manual-Page.

Nic

Hallo,

das gibts eigentlich nicht viel zu erklären. strftime() arbeitet - ähnlich wie printf - mit Format-Strings. %A steht dabei für den Namen des Wochentags, %x für das Datum bezogen auf die gesetzte locale. Ein komplette Beschreibung der Format-Strings findest Du in der entsprechende Manual-Page.

Nic

Kannst du vielleicht mal die einfachste Lösung posten,wie man das datum ausgibt!Hab noch nie mit der strftime() gearbeitet und weiß nicht wie man sie richtig anwendet! ;)

Ja hab da noch mal gleich ne Zusatzfrage!Ist es möglich das ausgelesene Datum mit einem eingegebenen Datum zu vergleichen?

  • 2 Jahre später...
Kannst du vielleicht mal die einfachste Lösung posten,wie man das datum ausgibt!Hab noch nie mit der strftime() gearbeitet und weiß nicht wie man sie richtig anwendet! ;)

Also ganz einfach ne :)


#include <time.h>

#include <iostream>


int main()

{

 time_t timeNow;

 tm *heute; //macht einen zeiger auf das struct tm in dem Informationen 

                 // ueber zeit datum und so drinstehen

  timeNow = time(0);

 heute = localtime(&timeNow); // mit localtime() gibt man heute die   

                                         // Informationen ueber das datum umgerechnet 

                                        // zurueck


 tagHeute = heute->tm_mday; //die variable tm->mday gibt den heutigen  

                                             // tag zurueck

 monatHeute = heute->tm_mon+1; //gibt das heutige monat -1 zurueck 

                                                    // deswegen +1

 jahrHeute = heute->tm_year+1990; //gibt das datum zurueck


 std::cout << "Datum: " << tagHeute << "." << monatHeute << "." << jahrHeute << std::endl;

 //std::cout ist in der iostream library <iostream> man kann natürlich auch 

// printf benutzen

Ja hab da noch mal gleich ne Zusatzfrage!Ist es möglich das ausgelesene Datum mit einem eingegebenen Datum zu vergleichen?

Was heißt vergleichen. Meinst welches das älter ist von den zwei Datumen.

Das ist nämlich nicht so schwer die zu vergleichen.

Funktion dazu:

int datum_vergleich(int tag, int monat, int jahr, int tagVergl, int monatVergl, int jahrVergl)

{

if(jahr < jahrVergl)

return 0; // das datum ist nicht groeßer als das zu vergleichende

elseif(jahr == jahr Vergl) //wenn das jahr gleich ist das monat ueberpruefen

{

if(monat < monatVergl)

return 0; //das datum ist nicht groeßer als das zu vergleichende

elseif(monat == monatVergl) //wenn das monat auch = ist, tag vergleichen

{

if(tag < tagVergl)

return 0;

elseif(tag == tagVergl)

return 2; //datum ist gleich

}

}

return 1; //das datum ist größer als das zu vergleichende datum

}

Was heißt vergleichen. Meinst welches das älter ist von den zwei Datumen.

Das ist nämlich nicht so schwer die zu vergleichen.

Funktion dazu:


int datum_vergleich(int tag, int monat, int jahr, int tagVergl, int monatVergl, int jahrVergl)

{

 if(jahr < jahrVergl)

     return 0; // das datum ist nicht groeßer als das zu vergleichende

 elseif(jahr == jahr Vergl) //wenn das jahr gleich ist das monat ueberpruefen

 {

   if(monat < monatVergl) 

       return 0; //das datum ist nicht groeßer als das zu vergleichende

   elseif(monat == monatVergl) //wenn das monat auch = ist, tag vergleichen

   {

     if(tag < tagVergl)

      return 0;

     elseif(tag == tagVergl)

      return 2; //datum ist gleich

   }

  }

  return 1; //das datum ist größer als das zu vergleichende datum

}

BIttesehr

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.