Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: [C++]Gestione date

  1. #1

    [C++]Gestione date

    Come ricavo l'ora attuale in formato HH:MM ???
    Posso convertirla in stringa?
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  2. #2
    bhe, puoi usare la struttura contenuta in <ctime>: tm
    contiene molti campi, ma quelli che ti interessano sono:
    tm_hour
    tm_min
    per ricavare l'ora attuale, usi la funzione mktime(struct tm *time); (se nn mi sbaglio)
    prova, buona fortuna ^_^
    ciao
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  3. #3
    ah gia, che scemo...
    per avere una stringa in quel formato devi usare la funzione
    strftime(char *str, int max, const char *ftm, struct tm *time);
    mette nella str passata la stringa risultato. max e' la lunghezza massima della stringa, ftm e' il formato ("%M:%H" per MM:HH 24 ore) e time e' la struttura da usare

    spero di nn essermi sbagliato
    ciao
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  4. #4
    se mi va ti menziono nella mia lib!
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  5. #5
    codice:
     /**
    * Virtuale: No 
    * Funzione: Ritornare l'ora
    * Argomenti: -
    * Return: l'ora grezza
    * Eccezioni: -
    */
    void Time::SetOra()
    {
        time_t TIME;
        tm *tim;
        char *tmp;
        const char *ftm =  "%M:%H";
        strftime(tmp, 7, &fmt, tim);
        // setta la var privata times con il valore di tmp;
        times = tmp;
    
    }
    Non mi va
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  6. #6
    non mi va e' generico... che problemi da?
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  7. #7
    codice:
     #include <ctime>
    #include <cstring>
    
    #include "Time.h" // class's header file
    
    namespace LucLib{
    
    /*
    	class constructor
    */
    Time::Time()
    {
    	// insert your code here
    }
    
    /*
    	class destructor
    */
    Time::~Time()
    {
    	// insert your code here
    }
    
    /**
    * Virtuale: No 
    * Funzione: Ritornare l'ora
    * Argomenti: -
    * Return: l'ora grezza
    * Eccezioni: -
    */
    void Time::SetOra()
    {
        time_t TIME;
        tm *tim;
        char *tmp;
        strftime(tmp, 7, "%M:%H", tim);
        // setta la var privata times con il valore di tmp;
        times = tmp;
    
    }
    /**
    * Virtuale: No 
    * Funzione: Setta l'ora
    * Argomenti: Il tipo di formattazione
    * Return: L'ora formattata
    * Eccezioni: -
    */ 
    strings Time::format_ora(TypeOra fmt)
    {
        switch(fmt)
        {
        case ORA_FORMAT_LOCALE:
            format_times = times;
            break;
        case ORA_FORMAT_PUNTO:
            char ora[5];
            ora[2] = '.';// cambia : in .
            format_times = ora;
            break;     
        }
        return format_times;
    }
    }//:-
    Risolto
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  8. #8
    allora, innanzi tutto un obrobrio:
    codice:
        char *tmp;
        ...
        strftime(tmp, 7, &fmt, tim);
    malissimo
    dichiari un puntatore a carattere e poi lo usi per metterci dentro una stringa... male male, il risultato sara' il 90% delle volte un segmentation fault. 90% per non esagerare ^_^
    fai cosi':
    char str[10];
    per l'ora 10 caratteri bastano e avanzano

    Poi, TIME a cosa ti serve? lo dichiari e non lo usi.

    Terzo, che ora pensi che tiri fuori se non la assegni tu?
    la funzione strftime, prende una stuttura tm, e IN BASE A QUELLA mette l'ora nella stringa... altrimenti a cosa servirebbe?

    cosi':
    tm tempo;
    mktime(&tempo); // a tempo va l'ora attuale
    strftime(str, 10, "%M:%H", &tempo);

    vedi se va
    poi al massimo faccio una prova io
    ciao
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  9. #9
    decisamente non va.
    Mi sono incuriosito, provo a farlo io

    ciao
    #exclude <windows.h>
    Powered by Gentoo GNU/Linux
    Cos'e' l'impossibile se non una questione di tempo?
    Riesumare i post vecchi non e' sbagliato, e' una risposta o la continuazione di un thread. Meglio riesumare che creare di nuovi :]

  10. #10
    Originariamente inviato da akiross
    decisamente non va.
    Mi sono incuriosito, provo a farlo io

    ciao
    Poi dimmi...............cosi impariamo delle cose in +
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

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 © 2024 vBulletin Solutions, Inc. All rights reserved.