Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139

    Convertire Secondi in anni e giorni

    Salve qualcuno sa come si convertono i secondi contenuti nella variabile $a in anni e quello che rimane in giorni?

  2. #2
    più o meno dovrebbe essere così:

    in un anno ci sono:
    60 sec * 60 min * 24 h *365.25 gg // (0.25gg tiene conto di 1 anno bisest. ogni 4)

    $an = floor( $a / (60 * 60 * 24 * 365.25));

    // secondi rimanenti

    $a = $a - $an * (60 * 60 * 24 * 365.25)

    // giorni

    $g = floor( $a / (60 * 60 * 24));

    forse ci sono istruzioni ottimizzate...

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    ok

  4. #4
    0.25 = 1/4

    se hai un numero elevatissimo di secondi corrispondenti a molti anni, tanti da comprendere più anni bisestili li consideri tutti uguali a 365.25, l'anno bistestile viene suddiviso tra i quattro anni.

    E' chiaro che si compie un errore non sapendo l'anno di partenza, ma era un termine non compreso nel problema.

    Se non ricordo male esistono ulteriori regole sugli anni bisestili nel senso che i millenni sono esclusi (ma posso sbagliarmi o forse era qualche altra eccezione).

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    mentre per convertire i secondi totali prima in mesi e poi sempre i secondi totali in settimane

  6. #6
    Sempre per lo stesso motivo che non si conosce il periodo iniziale

    mediamente un mese contiene 365.25 / 12 = 30.4375 giorni

    $mesi = floor( $a / (60 * 60 * 24 * 30.4375));

    la settimana contiene sempre 7 giorni indipendentemente dal resto

    $mesi = floor( $a / (60 * 60 * 24 * 7));

    le ho scritte di botto, ma dovrebbe essere così.

    SE&O

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    139
    ottimo

    google da un mese = 30,4368499 giorni


    che si fa?

  8. #8
    Avrà ragione lui...

    il suo numero è più basso del mio, quindi ci sono anni considerati bisestili che in realtà non lo sono, mi sembra siano proprio i millenni (ma vado a memoria).

  9. #9
    Originariamente inviato da vitren54
    Avrà ragione lui...

    il suo numero è più basso del mio, quindi ci sono anni considerati bisestili che in realtà non lo sono, mi sembra siano proprio i millenni (ma vado a memoria).
    i secolari non sono bisestili, a meno che siano divisibili per 400.

    Il 2000 ad esempio era divisibile per 100, ma era lo stesso bisestile perché divisibile per 400.

  10. #10
    Originariamente inviato da l'evangelista

    i secolari non sono bisestili, a meno che siano divisibili per 400.

    Il 2000 ad esempio era divisibile per 100, ma era lo stesso bisestile perché divisibile per 400..
    In base alle eccezioni suggerite il valore si avvicina ulteriormente anche se non coincide del tutto.

    Il calcolo va rapportato al millennio:

    in base ai giorni medi annui un millennio corrisponde a 365.250 gg

    a questi togliamo i giorni nel millennio non bisestili conteggiati erroneamente (es dall'anno 1000 al 2000) anno 1000-1100-1300-1400-1500-1700-1800-1900 per un totale di 8 gg

    per cui il calcolo diventa non 365.250 / 12.000 mesi ma 365.242 / 12.000 = 30,4368333

    e questa volta il valore è lievemente più basso di quello di Google.

    Ma, sempre se non ricordo male, il tempo di rivoluzione è di 365 gg più qualcosa (ore forse minuti) che andrebbero a compensare la differenza con il preciso calcolo di Google.

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.