[Risolto] Contatore del Tempo

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Vernagallo
Messaggi: 3
Iscritto il: lunedì 8 ottobre 2018, 12:32

[Risolto] Contatore del Tempo

Messaggio da Vernagallo »

Ciao a tutti voi, mi sono appena iscritto, e ho notato che tutti ricevono la soluzione al proprio problema, :bravo:
ringraziandovi anticipatamente inizio con il porgervi il mio quesito. Innanzi tutto non conosco bene le formule da adottare e tanto meno le funzioni. :crazy:
Su foglio di Calcolo dovrei conteggiare un lasso di tempo diviso in giorni, mesi ed anni, che man mano si vanno accumulando.
Siccome i giorni si sommano di continuo fino a divenire (es.: 1642) vorrei che il valore sia tra 1 e 30 e superata detta soglia, andrebbe ad incrementare la casella dei mesi, anch'essa con un valore compreso tra 1 e 12, e a sua volta incrementare la casella degli anni.
Vorrei sapere che formule e funzioni utilizzare per ottenere il risultato (es.: 5 giorni; 11 mesi; 20 anni)
Spero di essere stato chiaro e attendo una vostra risposta.
Grazie. :D
Ultima modifica di Vernagallo il venerdì 28 dicembre 2018, 13:50, modificato 1 volta in totale.
OpenOffice 4.1.3
WIN7-PC
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8945
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Contatore del Tempo

Messaggio da charlie »

Ciao e benvenuto sul forum.
Se intanto ti vuoi presentare puoi farlo qui: viewforum.php?f=16
Per una panoramica delle regole del forum consulta il Manuale di sopravvivenza: http://forum.openoffice.org/it/forum/vi ... hp?f=1&t=2
Buon proseguimento.
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
gioh66
Volontario
Volontario
Messaggi: 1807
Iscritto il: lunedì 31 luglio 2017, 14:57
Località: Friuli

Re: Contatore del Tempo

Messaggio da gioh66 »

Buondì. posta un file d'esempio con il risultato voluto scritto a mano.
...se sei soddisfatto delle risposte ricevute metti il [Risolto] viewtopic.php?f=9&t=5661

Libreoffice 7/24 LinuxMint 21/22
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8945
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Contatore del Tempo

Messaggio da charlie »

Ciao, posto che il numero dei giorni sia in A1, per gli anni scrivi in B1:

Codice: Seleziona tutto

=INT(A1/365)
per i mesi in C1:

Codice: Seleziona tutto

=INT((A1-B1*365)/30)
per i giorni, in D1:

Codice: Seleziona tutto

=RESTO((A1-B1*365);30)
S.E.&O. :lol:

Naturalmente considerando i mesi di 30 giorni e gli anni di 365.
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Vernagallo
Messaggi: 3
Iscritto il: lunedì 8 ottobre 2018, 12:32

Re: Contatore del Tempo

Messaggio da Vernagallo »

Innanzi tutto ringrazio chi mi ha dato attenzione, Charlie e gioh66, :super: cercherò di inviare un allegato, e scusatemi se vi sto complicando la vita anche a voi, Grazie.
Allegati
CONTATORE TEMPO.ods
(12.99 KiB) Scaricato 177 volte
OpenOffice 4.1.3
WIN7-PC
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8945
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Contatore del Tempo

Messaggio da charlie »

Mi risulta del tutto incomprensibile la condizione di partenza:
Schermata 2018-10-09 alle 08.00.51.png
Schermata 2018-10-09 alle 08.00.51.png (9.39 KiB) Visto 4447 volte
Di solito si parte da un numero di giorni accumulati e lo si vuole dividere in anni, mesi, giorni.
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Avatar utente
gioh66
Volontario
Volontario
Messaggi: 1807
Iscritto il: lunedì 31 luglio 2017, 14:57
Località: Friuli

Re: Contatore del Tempo

Messaggio da gioh66 »

Facendo un calcolo approssimativo, non tutti gli anni sono di 365 giorni e non tutti i mesi sono di 30, per gli anni potresti usare

Codice: Seleziona tutto

=INT(C2/365)+A2+INT(B2/12)
per i mesi

Codice: Seleziona tutto

=RESTO(B2;12)+INT((C2-INT(C2/365)*365)/30)
e per i giorni

Codice: Seleziona tutto

=RESTO((C2-INT(C2/365)*365);30)
il risultato si avvicina molto al tuo, salvo errori.
Allegati
CONTATORE TEMPO(1).ods
(15.02 KiB) Scaricato 170 volte
...se sei soddisfatto delle risposte ricevute metti il [Risolto] viewtopic.php?f=9&t=5661

Libreoffice 7/24 LinuxMint 21/22
Vernagallo
Messaggi: 3
Iscritto il: lunedì 8 ottobre 2018, 12:32

Re: Contatore del Tempo

Messaggio da Vernagallo »

Ringrazio tutti quanti per l'enorme aiuto che mi avete dato, in particolare charlie e gioh66, attraverso i loro suggerimenti, e un pò di intuizione sono riuscito ad avere dei risultati accettabili, visto che i mesi non sono tutti di 30 gg e gli anni non sono tutti di 365 gg. GRAZIE a tutti Voi
OpenOffice 4.1.3
WIN7-PC
Avatar utente
steeler
Messaggi: 95
Iscritto il: mercoledì 9 giugno 2010, 15:12
Località: UK
Contatta:

Re: Contatore del Tempo

Messaggio da steeler »

Chiedo scusa se riuppo questo topic ma ho un problema simile.
vedendo il secondo risultato dal sito Time and Date https://tinyurl.com/3d9kcuur con la funzione calcola tempo tra 2 date

che viene 8 years, 10 months, 20 days excluding the end date.
8 anni, 10 mesi, 20 giorni

nel mio allegato il risultato è diverso :crazy:
Allegati
test 2 date.ods
(10.72 KiB) Scaricato 117 volte
LibreOffice 5.1.6.2 @ Ubuntu Studio 16.04.3 LTS

LibreOffice Tutorial
nickGiard
Messaggi: 82
Iscritto il: lunedì 14 maggio 2012, 22:04

Re: [Risolto] Contatore del Tempo

Messaggio da nickGiard »

Chiedo scusa se in questo momento non sono in grado di dare un esempio scritto, ma faccio comunque presente che la gestione delle Date non risulta da semplici divisioni, ci sono gli anni bisestili.... Devi giocare la cosa con le funzioni Data Ora del foglio elettronico, o con le equivalenti del BASIC. Sicuramente interessante è la lettura di OpenOffice.org Macros Explained di Pitonyak cap. 6. Date Routines.
Tornando alla richiesta dovresti specificare cosa intendi per lasso di tempo: Hai due date, una iniziale ed una finale che magari viene aggiornata? Se è così si può pensare ad una determinazione esatta con quanto scritto sopra.
Nicola con LibreOffice 7.1 (x64) su Windows 11
Attilafdd
Volontario
Volontario
Messaggi: 564
Iscritto il: giovedì 5 aprile 2012, 8:25

Re: Contatore del Tempo

Messaggio da Attilafdd »

steeler ha scritto: nel mio allegato il risultato è diverso :crazy:
usa la funzione DATA.DIFF che è comodissima per questo lavoro.
Test 2 date v2.jpg
Allego esempio.
Allegati
test 2 date v2.ods
(11.36 KiB) Scaricato 101 volte
LibreOffice 24.8.0 (Win 11)
-----------------------------------------
Se risolto inserisci [Risolto] e la spunta verde Immagine: viewtopic.php?f=9&t=5661
nickGiard
Messaggi: 82
Iscritto il: lunedì 14 maggio 2012, 22:04

Re: [Risolto] Contatore del Tempo

Messaggio da nickGiard »

Nel caso ti interessi una funzione Basic, ho provato a sviluppare una soluzione, ovviamente da testare. La puoi richiamare da una cella con i parametri di cella inizio e cella fine periodo.
Mi sembra una cosa interessante.

Codice: Seleziona tutto

Function PeriodoToAnniMesiGiorni(Optional dDataInizio, Optional dDataFine) '  As Date
	' Test
	If IsMissing(dDataInizio) Then
		' "1/1/2020", "1/1/2020" --> "0000-00-01"
		' "1/2/2020", "1/3/2020" --> "0000-01-01"
		' "1/2/2021", "1/3/2021" --> "0000-01-01"
		' "1/2/2021", "1/2/2022" --> "0001-00-01"
		' "1/2/2022", "1/2/2023" --> "0001-00-01"
		' "1/2/2022", "15/3/2023" --> "0001-01-15"
		dDataInizio = "1/2/2022" : dDataFine = "15/3/2023"
	End If
	dDataInizio = CDate(dDataInizio)
	dDataFine = CDate(dDataFine) + 1 'Stesso giorno Inizio e fine conta per 1
	' Anni
	Dim iAnni% : iAnni = DateDiff("yyyy", dDataInizio, dDataFine) ' Year(dDataFine) - Year(dDataInizio)
	'dInizioPiuAnni Data 0 + Years integer
	Dim dInizioPiuAnni As Date : dInizioPiuAnni = DateAdd("yyyy", iAnni, dDataInizio)
	' Mesi
	Dim dInizioPiuAnniMesi As Date, iMesi%
	iMesi = DateDiff("m", dInizioPiuAnni, dDataFine)
	dInizioPiuAnniMesi = DateAdd("m", iMesi, dInizioPiuAnni)
	' Giorni rimanenti
	Dim iGiorni% : iGiorni = DateDiff("y", dInizioPiuAnniMesi, dDataFine)
	Dim aResult
	aResult = Array(Right("0000" & iAnni, 4), Right("00" & iMesi, 2), Right("00" & iGiorni, 2))
	Dim sResult$ : sResult = Join(aResult, "-")
	
	PeriodoToAnniMesiGiorni = sResult
End Function
Nicola con LibreOffice 7.1 (x64) su Windows 11
nickGiard
Messaggi: 82
Iscritto il: lunedì 14 maggio 2012, 22:04

Re: [Risolto] Contatore del Tempo

Messaggio da nickGiard »

Salve
come succede spesso, se non fai test approfonditi, le macro possono avere dei bug, come nel caso della macro che ho esposto.
Ho integrato la stessa, che risulta all'interno del file che allego, con i relativi test.
Allegati
PeriodoScomponi.ods
File con macro e test
(17.6 KiB) Scaricato 84 volte
Nicola con LibreOffice 7.1 (x64) su Windows 11
Rispondi