Calcolo della durata tra due date di anni diversi<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Sto usando lo script JSL per eseguire uno dei miei rapporti che può calcolare la durata tra due date. Il mio rapporto ha una data di inizio nella colonna "A" e una data di fine nella colonna "E", voglio calcolare quanto segue:
1. Durata tra questi due giorni esclusi i fine settimana
2, Durata tra quei due giorni, la data di inizio è il 31/10/2012 e la data di fine è il 20/02/2013, e quando ho usato il forumla "Formula(Day(:E - :A))" , sto ottenendo un valore di 10, invece di qualcosa di più grande. La data di inizio è nel 2012 e la data di fine è nel 2013, quindi devo apportare modifiche al mio script? Le altre durate che cadono nello stesso anno sono calcolate correttamente usando la stessa formula..ma le date che ricadono in anni diversi non sono calcolate accuratamente..
qualcuno può aiutare con le due domande?
Grazie,
Re: Calcolo della durata tra due date di anni diversiSì, ha funzionato.. grazie mille!!
Re: Calcolo della durata tra due date di anni diversiOk credo di aver capito il problema. Apparentemente JMP non segue lo standard ISO 8601 (cioè il primo giorno della settimana è il lunedì) ma la tradizione statunitense di celebrare la domenica come primo giorno della settimana. Questo spiega perfettamente i tuoi risultati sopra poiché la mia formula presuppone il primo. Tuttavia, è banale adattare la formula per tenerne conto (o qualsiasi altra definizione locale di giorno della settimana o quali giorni sono considerati appartenenti al fine settimana).
Prova ad esempio questo:
Provare ( Somma ( 1 < Giorno della settimana ( Indice ( : UN , : e , 86400 ) ) <= 6 ) - 1 )
Di seguito è riportato il mio output di prova e sembra funzionare. Il "banco" si ferma durante i fine settimana (sab-dom dove vivo). Rimuovi il -1 se per "durata tra due date" intendi includere l'intera durata delle date di inizio e fine. (Qui A = oggi, E = giorni futuri)
| UN | e | Giorno feriale | Giorni lavorativi |
| 05-04-2013 | 05-04-2013 | Venerdì | 0 |
| 05-04-2013 | 06-04-2013 | Sabato | 0 |
| 05-04-2013 | 07-04-2013 | Domenica | 0 |
| 05-04-2013 | 2013-04-08 | Lunedi | 1 |
| 05-04-2013 | 09-04-2013 | Martedì | 2 |
| 05-04-2013 | 2013-04-10 | Mercoledì | 3 |
| 05-04-2013 | 2013-04-11 | Giovedì | 4 |
| 05-04-2013 | 2013-04-12 | Venerdì | 5 |
| 05-04-2013 | 13-04-2013 | Sabato | 5 |
| 05-04-2013 | 14-04-2013 | Domenica | 5 |
| 05-04-2013 | 15-04-2013 | Lunedi | 6 |
| 05-04-2013 | 16-04-2013 | Martedì | 7 |
| 05-04-2013 | 17-04-2013 | Mercoledì | 8 |
| 05-04-2013 | 2013-04-18 | Giovedì | 9 |
| 05-04-2013 | 2013-04-19 | Venerdì | 10 |
| 05-04-2013 | 2013-04-20 | Sabato | 10 |
| 05-04-2013 | 21-04-2014 | Lunedi | 271 |
| 05-04-2013 | 22-04-2015 | Mercoledì | 533 |
Re: Calcolo della durata tra due date di anni diversiI dati sono numerici continui, formato data..e voglio calcolare il numero di giorni della settimana esclusi i fine settimana.. dati di esempio:-
| Data di inizio prevista | Nuova data di completamento dell'attività |
| 1/3/2013 | 1/3/2013 |
| 1/3/2013 | 4/1/2013 |
| 1/8/2013 | 8/1/2013 |
| 8/1/2013 | 1/8/2013 |
| 1/9/2013 | 1/9/2013 |
| 1/9/2013 | 1/9/2013 |
| 1/9/2013 | 1/11/2013 |
| 1/9/2013 | 1/9/2013 |
| 1/9/2013 | 1/10/2013 |
| 1/9/2013 | 1/9/2013 |
| 1/10/2013 | 1/11/2013 |
| 1/10/2013 | 1/11/2013 |
Re: Calcolo della durata tra due date di anni diversiHo provato la tua formula... funziona per poche celle... vedi i miei dati qui sotto... usando la tua formula... le righe 1 e 2 sono in contraddizione...
| Data di inizio prevista | Nuova data di completamento dell'attività | SM |
| 1/3/2013 | 1/3/2013 | 0 |
| 1/3/2013 | 4/1/2013 | 0 |
| 8/1/2013 | 8/1/2013 | 0 |
| 8/1/2013 | 8/1/2013 | 0 |
| 1/9/2013 | 1/9/2013 | 0 |
| 1/9/2013 | 1/9/2013 | 0 |
| 1/9/2013 | 1/11/2013 | 1 |
| 1/9/2013 | 1/9/2013 | 0 |
| 1/9/2013 | 1/10/2013 | 1 |
| 1/9/2013 | 1/9/2013 | 0 |
| 1/10/2013 | 1/11/2013 | 0 |
| 1/10/2013 | 1/11/2013 | 0 |
| 1/2/2013 | 1/2/2013 | 0 |
| 1/2/2013 | 8/1/2013 | 4 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 7/1/2013 | 1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 8/1/2013 | 2 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 7/1/2013 | 1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 8/1/2013 | 2 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 7/1/2013 | 1 |
| 7/1/2013 | 8/1/2013 | 1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 4/1/2013 | 4/1/2013 | -1 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 1/9/2013 | 2 |
| 1/10/2013 | 1/10/2013 | 0 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 8/1/2013 | 1 |
| 8/1/2013 | 1/9/2013 | 1 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 8/1/2013 | 1 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 7/1/2013 | 0 |
| 7/1/2013 | 8/1/2013 | 1 |
| 8/1/2013 | 8/1/2013 | 0 |
| 8/1/2013 | 8/1/2013 | 0 |
| 8/1/2013 | 1/9/2013 | 1 |
| 1/9/2013 | 16/01/2013 | 5 |
| 16/01/2013 | 22/01/2013 | 4 |
| 8/1/2013 | 8/1/2013 | 0 |
| 8/1/2013 | 8/1/2013 | 0 |
| 1/9/2013 | 1/9/2013 | 0 |
| 1/9/2013 | 1/10/2013 | 1 |
| 1/10/2013 | 1/10/2013 | 0 |
| 15/01/2013 | 15/01/2013 | 0 |
| 15/01/2013 | 16/01/2013 | 1 |
| 15/01/2013 | 16/01/2013 | 1 |
| 18/01/2013 | 19/02/2013 | 22 |
| 19/02/2013 | 19/02/2013 | 0 |
| 15/01/2013 | 15/01/2013 | 0 |
| 15/01/2013 | 16/01/2013 | 1 |
| 16/01/2013 | 18/01/2013 | 1 |
| 15/01/2013 | 15/01/2013 | 0 |
| 15/01/2013 | 16/01/2013 | 1 |
| 16/01/2013 | 18/01/2013 | 1 |
| 1/9/2013 | 1/9/2013 | 0 |
| 1/9/2013 | 1/9/2013 | 0 |
| 1/9/2013 | 1/10/2013 | 1 |
| 1/10/2013 | 1/10/2013 | 0 |
| 1/10/2013 | 1/10/2013 | 0 |
| 1/10/2013 | 1/10/2013 | 0 |
| 1/10/2013 | 1/10/2013 | 0 |
| 1/10/2013 | 1/10/2013 | 0 |
| 1/10/2013 | 1/11/2013 | 0 |
| 1/10/2013 | 1/10/2013 | 0 |
| 16/01/2013 | 29/01/2013 | 9 |
| 16/01/2013 | 29/01/2013 | 9 |
| 29/01/2013 | 2/1/2013 | 2 |
| 1/11/2013 | 1/11/2013 | -1 |
| 1/11/2013 | 1/11/2013 | -1 |
| 1/11/2013 | 1/11/2013 | -1 |
| 1/11/2013 | 14/01/2013 | 1 |
Re: Calcolo della durata tra due date di anni diversiHai mai provato la formula nella mia risposta? Doveva escludere i giorni feriali e funziona per me se le colonne sono in formato data (non stringhe).
Re: Calcolo della durata tra due date di anni diversiQuesto è lo stesso calcolo dell'utilizzo della differenza di data ... ma include anche i fine settimana ... c'è un modo per calcolare SOLO i giorni feriali?
Re: Calcolo della durata tra due date di anni diversiFunziona, ma non voglio includere i fine settimana nel mio calcolo. C'è un modo per calcolare solo i giorni feriali?
Re: Calcolo della durata tra due date di anni diversiSe le colonne della data di inizio e di fine sono in formato continuo, numerico, data; quindi la formula per la durata tra le due colonne in giorni potrebbe essere qualcosa del tipo: Differenza di data(:Data di inizio, :Data di fine, "giorno")
Se le colonne della tua data sono caratteri, puoi analizzare il testo come ha fatto PMroz sopra con:
Differenza di data(
informat(:Data di inizio, "m/g/a"),
informat(:Data di fine, "m/g/a"),
"giorno")
Re: Calcolo della durata tra due date di anni diversiQuesto ti darà il tempo trascorso in giorni.
Innanzitutto, aggiungi una nuova variabile/colonna numerica.
Nella finestra dell'editor delle formule, seleziona la prima data, fai clic su sottrai, seleziona la seconda data, quindi dividi per, seleziona la funzione Data e ora, in giorni, metti un 1 tra parentesi, fai clic su applica.
(:diagnosis_date - :dob_date) / In giorni( 1 )
Re: Calcolo della durata tra due date di anni diversiChe ne dici di utilizzare le informazioni sulla colonna e specificare le colonne Data di inizio e Data di fine con Tipo di dati = Numerico, Tipo di modellazione = Continuo, Formato=Data=m/g/a, Formato di input=Data=m/g/a. Quindi aggiungi una colonna aggiuntiva e utilizzando la formula della colonna specifica la data di fine e la data di inizio e scegli anche la durata del formato: giorno: ora: min
Re: Calcolo della durata tra due date di anni diversipuoi renderlo più generale? Vi spiego chiaramente i miei dati.. Ho una colonna "Data di inizio" con formato come Data (mm/gg/aaaa) e un'altra colonna "Data di fine" con formato come mm/gg/aaaa. Voglio sottrarre la data di inizio dalla data di fine, la mia data è
Data di inizio Data di fine
31/10/2012 31/03/2013
15/09/2012 13/02/2013
15/08/2012 29/01/2013
Ora voglio sottrarre Data di fine - Data di inizio per ottenere il valore in giorni
poiché la data di inizio è nel 2012 e le date di fine sono nel 2013, non ottengo il valore corretto se dico semplicemente: Data di fine -: Data di inizio
Re: Calcolo della durata tra due date di anni diversi1. Questa formula di colonna dovrebbe indicare il numero di giorni lavorativi tra i due giorni:
Provare ( Somma ( Giorno della settimana ( Indice ( : UN , : e , 86400 ) ) < 6 ) - 1 )
Incollalo nell'editor delle formule. Il Try() è necessario solo se hai celle vuote nella colonna della data. Il -1 è lì per escludere la data di inizio (o fine) dalla somma. 86400 è il numero di secondi in 24 ore.
2. La formula della colonna equivalente al suggerimento di PMroz sarebbe:
( : e - : UN ) / 86400
Re: Calcolo della durata tra due date di anni diversiPuoi fornire maggiori informazioni?Qual è il tipo di dati e il formato delle colonne A ed E?Inoltre, quando sottrai le date ottieni il numero di secondi tra di loro.Ecco un semplice esempio che calcola la differenza di data in giorni:
una data = informato ( "31/10/2012" , "mese/giorno/aa" ) ;
edate = informato ( "20/02/2013" , "mese/giorno/aa" ) ;
cdata = ( edate - una data ) / 3600 / 24 ;
Questo risulta in
112