Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 21

Discussione: [C] confronto fra date

  1. #11
    Originariamente inviato da pprllo
    Gli devi passare l'indirizzo:
    codice:
    ...
    return mktime(&data);
    ecco.. hai ragione.. dovevo arrivarci solo.. tanto più che prima di aprire questo thread avevo fatto anche così... ma mi ero convinto di aver sbagliato perchè stampando come intero (e anche qui ci avevo preso ma ho chiesto per sicurezza) il valore restituito dalla mia funzione (ovvero quello restituito da mktime) mi viene stampato "-1"....

    a questo punto non ci capisco più niente.. a parte che avevo fatto bene sin dalla prima volta e poi mi sono imparanoiato per sta cosa e mo' ci sono tornato di nuovo

    che mi sai dire in merito?

    grazie mille, anche per il tempismo


  2. #12
    codice:
    #include <stdio.h>
    #include <time.h>
    
    int main(void)
    {
       time_t now = time(NULL);
       if ( now != (time_t)-1 )
       {
          fputs(ctime(&now), stdout);
       }
       return 0;
    }
    allego il link alla gapil..

    http://www.lilik.it/~mirko/gapil/gapilsu128.html

    forse e' troppo tardi..

  3. #13
    Originariamente inviato da kentaromiura
    allego il link alla gapil..

    http://www.lilik.it/~mirko/gapil/gapilsu128.html

    forse e' troppo tardi..
    non avevo pensato a guardare lì

    "Tutte le funzioni restituiscono un puntatore al risultato in caso di successo e NULL in caso di errore, tranne che mktime che restituisce direttamente il valore o -1 in caso di errore."

    perchè mi restituisce errore?

    premetto che la data presente nella struct che passo a mktime è giusta... stampando elemento per elemento mi viene la data che legge da input e chiaramente è una data valida [niente 30 febbraio ]


  4. #14
    Originariamente inviato da }gu|do[z]{®©
    non avevo pensato a guardare lì

    "Tutte le funzioni restituiscono un puntatore al risultato in caso di successo e NULL in caso di errore, tranne che mktime che restituisce direttamente il valore o -1 in caso di errore."

    perchè mi restituisce errore?

    premetto che la data presente nella struct che passo a mktime è giusta... stampando elemento per elemento mi viene la data che legge da input e chiaramente è una data valida [niente 30 febbraio ]
    mi sa' che devi riempire tutta la struttura:
    codice:
       t.tm_sec    = 1;  /* Secondi */
       t.tm_min    = 30; /* Minuti */
       t.tm_hour   = 9;  /* Ore */
       t.tm_mday   = 22; /* Giorno  */
       t.tm_mon    = 11; /* Mese */
       t.tm_year   = 56; /* Anno */
       t.tm_wday   = 4;  /* giorno della settimana  */
    compresi i secondi..

  5. #15
    Originariamente inviato da kentaromiura
    mi sa' che devi riempire tutta la struttura:
    codice:
       t.tm_sec    = 1;  /* Secondi */
       t.tm_min    = 30; /* Minuti */
       t.tm_hour   = 9;  /* Ore */
       t.tm_mday   = 22; /* Giorno  */
       t.tm_mon    = 11; /* Mese */
       t.tm_year   = 56; /* Anno */
       t.tm_wday   = 4;  /* giorno della settimana  */
    compresi i secondi..
    ah.. po' esse.. non ci avevo pensato..

    vai di zeriii

    no aspè.. e il giorno della settimana come lo riempo? se ci metto un valore a caso (tanto l'informazione non mi serve) non è che mktime "se ne accorge" e mi da erroe perchè magari non corrispondono?

    provo va

  6. #16
    l'errore che mi stampa perror è "illegal seek"...

    ho riempito tulla la struct con 0... niente..


    che è? come faccio?

  7. #17
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    423
    Edito completamente dal messaggio precedente. Quel codice non funziona. La struct tm va inizializzata. Fai così:
    codice:
     	 tm *formattedtime;
     	 time_t rawtime;
     	 
         time ( &rawtime );
         formattedtime = localtime(&rawtime);
     	 formattedtime->tm_year = 1988 - 1900;
     	 formattedtime->tm_mon = 12 - 1;
     	 formattedtime->tm_mday = 15;
     	 formattedtime->tm_hour = 15;
     	 formattedtime->tm_min = 15;
     	 formattedtime->tm_sec = 15;
     	 
     	 rawtime = mktime(formattedtime);
     	 return rawtime;
    Questo funzionerà.

  8. #18
    Originariamente inviato da pprllo
    Guarda non c'entra perchè mktime autocorregge l'argomento (perchè credi che prenda un indirizzo ? )
    Questo spezzone di codice (compilato con DJGPP, con Borland mi da un assurdo bug che non sto qui a spiegare ) funziona benissimo. Regolati su questo:
    codice:
    #include <time.h>
    #include <iostream>
    using namespace std;
    
    int main()
    {
      struct tm data;
    
        data.tm_mday = atoi("10");
        data.tm_mon  = atoi("11");
        data.tm_year = atoi("1988");
        data.tm_hour = atoi("3");
        data.tm_min = atoi("5");
        
        cout << mktime(&data);
    }
    Infatti immaginavo che fosse compito di mktime stesso mettere valori "neutri" ai campi nulli... però :bho:

    più che regolarmi sul tuo [che tra l'altro mi pare sia C++ ] vorrei capire cosa non va nel mio...

    data è valorizzato bene.. ma mktime restituisce -1... e con perror ottengo "illegal seek"...

  9. #19
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    423
    Leggi l'edit

  10. #20
    Utente di HTML.it
    Registrato dal
    Dec 2003
    Messaggi
    423
    Allora ce l'hai fatta ?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.