1. BENVENUTO SU CONSOLE TRIBE

    Benvenuto, stai navigando nella nostra community come ospite

    Avere un account su Console Tribe ti permetterà di creare e partecipare alle discussioni e al mercatino, organizzare tornei e partite online, iniziare conversazioni personali con gli altri giocatori del forum e di utilizzare tutte le funzioni di questo sito.

    Registra il tuo account in meno di 5 secondi, se vuoi puoi sfruttare i login social via Facebook, Google Plus o Twitter.

Help conversione date in formato strano

Discussione in 'Computer & Technology' iniziata da lycenhol, 5 Febbraio 2010.

  1. lycenhol

    lycenhol Tribe Active Member

    Registrato:
    31 Maggio 2006
    Messaggi:
    30.199
    "Mi Piace" ricevuti:
    257
    Punteggio:
    4.957
    Località:
    Nella tonnara come Rais
    Salve

    Mi è capitato di dover recuperare dei dati da un vecchio DB.

    In questo archivio clienti ci sono delle date che sono espresse in un formato numerico strano: ho un unsigned long che il sistema originario trasforma in data.

    Da prove e calcoli, sembrerebbe che le date siano espresse come giorni dal 1/1/0 (esatto, proprio anno 0).

    Il problema è che ho fatto un algoritmo che converte il numero in date, anche considerando gli anni bisestili, anche considerando che i bisestili iniziano solo nel 1570, ma ho uno scarto di 19-20 giorni.

    Es.
    733.779 per il programma è il 07/01/2010, a me risulta convertito come 26/1/2010
    727.535 per il programma è il 03/12/1992, a me risulta convertito come 23/12/1992
  2. se non sbaglio il calendario gregoriano è stato più volte "corretto" dopo la sua introduzione, cioè sono stati aggiunti o tolti più giorni negli anni.
    non so il motivo, ma sono quasi sicuro che questa possa essere la causa dello scarto di 20 giorni che ottieni col tuo algoritmo.
  3. lycenhol

    lycenhol Tribe Active Member

    Registrato:
    31 Maggio 2006
    Messaggi:
    30.199
    "Mi Piace" ricevuti:
    257
    Punteggio:
    4.957
    Località:
    Nella tonnara come Rais
    La cosa che hai detto è sensata, ma perché allora il divario con la data più vecchia nel tempo è di 20 giorni e poi diventa 19 con quella più recente?
    Mi aspetterei il contrario, che crescesse, non che si riduca.
  4. uhm... magari le correzioni avvenute negli anni nel calendario gregoriano hanno in qualche modo modificato il normale corso degli anni bisestili. e questo è andato a cozzare con il tuo algoritmo.
    non so, magari il tuo algoritmo prevede tra il 1992 e il 2010 un anno bisestile in più che nel calendario gregoriano in realtà manca.

    non so, è un'ipotesi. prova a ridurre sempre più l'intervallo 1992-2010 considerando date sempre più vicine nel tempo, così magari troverai l'anno in cui avviene il salto di 1 giorno da 20 a 19.

    ho letto su wiki comunque che gli anni bisestili nel calendario gregoriano son quelli divisibili per 4, anche se magari già lo sapevi.
    Ultima modifica di un moderatore: 5 Febbraio 2010
  5. lycenhol

    lycenhol Tribe Active Member

    Registrato:
    31 Maggio 2006
    Messaggi:
    30.199
    "Mi Piace" ricevuti:
    257
    Punteggio:
    4.957
    Località:
    Nella tonnara come Rais
    Sono gli anni divisibili per 4, ma non per 100 a meno dei multipli di 400 che lo sono. :lalala:
  6. si, ok...

    hai risolto dunque?