Frage zu einer Aufgabe aus dem Buch Objektive-C von Aaron Hillegass

  • Frage zu einer Aufgabe aus dem Buch Objektive-C von Aaron Hillegass

    Liebe Community,

    ich habe mir das Buch "Objektive-C - Der Einsteig: Der Big Nerd Ranch Guide" geholt und hänge jetzt auf Seite 86.

    Es ist eine Aufgabe zum Kapitel 10 - Strukturen.
    Die Aufgabe lautet, ein Programm schreiben, das ausgibt, welches Datum in Millionen Sekunden sein wird (im Format 4-30-2015 reicht).
    (Ein Tipp:tm_mon = 0 steht für Januar, also addieren Sie 1. Binden Sie auch den Header <time.h> zu Beginn Ihres Programms ein.)
    Das Programm ist ein C CommandLineTool.

    Ich komm einfach nicht weiter. Als zusätzlich Hilfe - nimm ich mal an - ist folgender Code darüber getippt:

    Quellcode

    1. long secondsSince1970 = time(NULL);
    2. printf("It has been %ld seconds since 1970\n", secondsSince1970);
    3. struct tm now;
    4. localtime_r(&secondsSince1970, &now);
    5. printf("The time is %d:%d:%d\n", now.tm_hours, now.tm_min, now.tm_sec);


    Kann mir vielleicht jemand erklären, wie das funktioniert und wie bzw. was die Funktion localtime_r() macht?

    Mit freundlichen Grüßen

    TheFuriousLion
  • ich habe das Buch auch grad in Arbeit.
    Ist bei mir zwar schon ein paar Tage her...

    mit "show Quick help inspector" brauchst Du "nur" auf das Schlüsselwort klicken und bekommst alles ausführlich von Apple erklärt


    Ich hab das so gelöst:

    Quellcode

    1. NSDate *now = [NSDate date];
    2. NSLog(@"aktuelles Datum %@", now);
    3. double seconds = [now timeIntervalSince1970];
    4. NSLog(@"Seit 1.1.1970 sind %f Sekunden vergangen.", seconds);
    5. NSDate *later = [now dateByAddingTimeInterval:1000000];
    6. NSLog(@"Datum in 1.000.000 Sekunden: %@", later);
    Ich habe auch keine Loesung, aber ich bewundere das Problem!
    _____________________________________________________


    Hape42
  • TheFuriousLion schrieb:

    Kann mir vielleicht jemand erklären, wie das funktioniert und wie bzw. was die Funktion localtime_r() macht?

    Ohne nun konkret nachzuschauen: Prinzipiell legst Du eine Strukur now vom Typ tm an. Die Adresse dieser Struktur übergibt Du an die Funktion localtime_r, die ihrerseits dort Werte hineinschreibt. Nun kannst Du auf Teile der Struktur zugreifen, z. B. tm_hours.

    Eine Musterlösung hat Dir ja schon hape42 gegeben.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.