Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [C] problema data

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323

    [C] problema data

    Salve, avrei un problema con la data .. come faccio ad fare che l'utente scrive la data in italiano ed io dopo la posso convertirla in inglese e inserirla nel database sqlite.?

    input:
    13-05-2014

    e diventa:
    output : 2014-05-13

    come posso fare?

    Per il database non ci sono problemi.. ma vorrei controllare la data prima che vada inserita nel campo data in formato date.

    grazie mille e buona serata.

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Qual'è il problema?
    Concettualmente devi solo divideri i campi e invertirli...
    Poi puoi farlo in svariati modi...
    Per la semplicità del caso ti basta una sscanf e una sprintf...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    ho fatto ma non riesco ad recuperarla :
    codice:
        printf("Inserisci la data in sequenza 00 00 0000 senza trattini : ");                
    char dtm[100];                
    sscanf(dtm, "%d-%d-%d", &input_anno, &input_mese, &input_giorno);                
    //2014-05-13
    come faccio ora?
    gli input sono tutti int;

    idea come fare?
    grazie mille e buona serata.

  4. #4
    Verifica che l'anno sia positivo, che i mesi siano compresi tra 1 e 12, che i giorni siano maggiori di 1 e minori del numero di giorni del mese specificato (si fa facilmente con una tabella di lookup). Ricordati del caso speciale di febbraio, che ha 29 giorni negli anni divisibili per 4, ma non per quelli divisibili per 100 (a meno che non siano divisibili anche per 400).

    In alternativa, puoi convertire la data in un time_t e "tornare indietro" passando per struct tm, mktime e localtime, per poi confrontare se hai riottenuto lo stesso risultato (mktime accetta valori fuori range e li rinormalizza, per cui l'output finale sarà diverso dall'input); ma tutto sommato probabilmente fai prima a fare i check di range diretti.

    Alla fine, verificata la validità dei dati, puoi riscriverli in una stringa con una sprintf.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Scusa ... ma se dtm non è inizializzato, cosa deve recuperare??
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2014
    Messaggi
    323
    salve, si può chiudere la discussione perché me lo sono fatto in libreCalc che è stato più semplice che star li a programmare che io non ho nemmeno studiato e non ho il tempo per studiare il linguaggio.. ora so solo html e javascript e uno spruzzatina di php.
    quindi ciao e buona serata.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Non c'è bisogno di chiudere le discussioni ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.