Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.lang.javascript > #8200 > unrolled thread
| Started by | diego1966 <diegocicirello@gmail.com> |
|---|---|
| First post | 2017-05-07 11:40 -0700 |
| Last post | 2017-05-11 11:44 -0700 |
| Articles | 7 — 5 participants |
Back to article view | Back to it.comp.lang.javascript
Calcolare giorni lavorativi comprese tra due date diego1966 <diegocicirello@gmail.com> - 2017-05-07 11:40 -0700
Re: Calcolare giorni lavorativi comprese tra due date Dr J R Stockton <reply1700@merlyn.demon.co.uk.invalid> - 2017-05-08 23:30 +0100
Re: Calcolare giorni lavorativi comprese tra due date Sandro kensan <kensan@kensan.it> - 2017-05-09 16:19 +0200
Re: Calcolare giorni lavorativi comprese tra due date Alessandro Pellizzari <shuriken@amiran.it> - 2017-05-09 17:54 +0100
Re: Calcolare giorni lavorativi comprese tra due date Dr J R Stockton <reply1700@merlyn.demon.co.uk.invalid> - 2017-05-10 17:45 +0100
Re: Calcolare giorni lavorativi comprese tra due date diego1966 <diegocicirello@gmail.com> - 2017-05-09 15:13 -0700
Re: Calcolare giorni lavorativi comprese tra due date fmassei@gmail.com - 2017-05-11 11:44 -0700
| From | diego1966 <diegocicirello@gmail.com> |
|---|---|
| Date | 2017-05-07 11:40 -0700 |
| Subject | Calcolare giorni lavorativi comprese tra due date |
| Message-ID | <c23843da-6b2e-46b5-9e50-b8ff9162277b@googlegroups.com> |
Buona sera, avrei bisogno di una grossa mano, in un modulo PDF ho bisogno di visualizzare in un campo che chiameremo "TotGiorni" un numero ricavato dall'intervallo di due campi data, che chiameremo "Dalgg" e "Algg", come da titolo i giorni sono lavorativi e si possono sviluppare in una settimana lavorativa di 5 gg o di 6 gg (Sabato incluso), in tutto questo per calcolare i giorni di effettivo lavoro sono da considerare anche le festività compresa il santo patrono e la pasqua (o meglio la pasquetta visto che la pasqua cade sempre di domenica), per farmi restituire i giorni effettivi tra due date ho usato questo script :
//console.show();
//console.clear();
var strStart = this.getField("dalgg").value;
var strEnd = this.getField("Algg").value;
if(strStart.length && strEnd.length)
{
var dateStart = util.scand("dd/mm/yyyy",strStart);
var dateEnd = util.scand("dd/mm/yyyy",strEnd);
var diff = dateEnd.getTime() - dateStart.getTime();
var oneDay = 24 * 60 * 60 * 1000;
var days = Math.floor(diff/oneDay);
event.value = 1+days;
}
else
event.value = 0;
dove il 1+days mi ritorna 1 se il giorno lavorativo è compreso tra la stessa data (data inizio oggi, data fine oggi), viceversa se non aggiungevo quell' 1 mi restituiva 0.
potreste darmi una mano di aiuto per favore? non so come fare, sono molto scarso, come posso fare ad implementare a questo codice la funzione per determinare i festivi e la pasquetta e poter scegliere se il calcolo dei giorni fa fatto su 5 giorni lavorativi o su 6 se includiamo il sabato.
[toc] | [next] | [standalone]
| From | Dr J R Stockton <reply1700@merlyn.demon.co.uk.invalid> |
|---|---|
| Date | 2017-05-08 23:30 +0100 |
| Message-ID | <SKV9nGRpFPEZFwsb@invalid.uk.co.demon.merlyn.invalid> |
| In reply to | #8200 |
In it.comp.lang.javascript message <c23843da-6b2e-46b5-9e50-b8ff9162277b @googlegroups.com>, Sun, 7 May 2017 11:40:05, diego1966 <diegocicirello@gmail.com> posted: >Buona sera, avrei bisogno di una grossa mano, in un modulo PDF ho bisogno di visualizzare in un campo che chiameremo "TotGiorni" un numero >ricavato dall'intervallo di due campi data, che chiameremo "Dalgg" e "Algg", come da titolo i giorni sono lavorativi e si possono sviluppare in >una settimana lavorativa di 5 gg o di 6 gg (Sabato incluso), in tutto questo per calcolare i giorni di effettivo lavoro sono da considerare >anche le festività compresa il santo patrono e la pasqua (o meglio la pasquetta visto che la pasqua cade sempre di domenica), per farmi >restituire i giorni effettivi tra due date ho usato questo script : Code for the Date of Easter Sunday, derived from the British Calendar Act, and agreeing perpetually with Clavius & Gregory XIII, can be found in <http://web.archive.org/web/20120805200830/http://www.merlyn.demon.co.uk /estr-bcp.htm>. -- (c) John Stockton, Surrey, UK. ¬@merlyn.demon.co.uk Turnpike v6.05 MIME. Merlyn Web Site < > - FAQish topics, acronyms, & links.
[toc] | [prev] | [next] | [standalone]
| From | Sandro kensan <kensan@kensan.it> |
|---|---|
| Date | 2017-05-09 16:19 +0200 |
| Message-ID | <ene1enFes38U1@mid.individual.net> |
| In reply to | #8200 |
On 07/05/2017 20:40, diego1966 wrote: > var oneDay = 24 * 60 * 60 * 1000; > var days = Math.floor(diff/oneDay); Tra l'altro se c'è il cambio di orario tipicamente in primavera e in autunno forse non funziona questo sistema. -- Sandro kensan www.kensan.it & www.qiqi.it geek site Saluto gli agenti della NSA - Hello NSA - www.nsa.gov
[toc] | [prev] | [next] | [standalone]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2017-05-09 17:54 +0100 |
| Message-ID | <eneaitFgs6rU1@mid.individual.net> |
| In reply to | #8202 |
On 09/05/17 15:19, Sandro kensan wrote: > On 07/05/2017 20:40, diego1966 wrote: > >> var oneDay = 24 * 60 * 60 * 1000; >> var days = Math.floor(diff/oneDay); > Tra l'altro se c'è il cambio di orario tipicamente in primavera e in > autunno forse non funziona questo sistema. E i bisestili, e i leap seconds, e le feste nazionali/regionali, e un milione di altre cose. Gestire date e` una delle cose piu` difficili. Io partirei almeno dall'usare moment.js per fare i calcoli. Poi le feste locali vanno calcolate a mano, ma almeno e` un inizio. Bye.
[toc] | [prev] | [next] | [standalone]
| From | Dr J R Stockton <reply1700@merlyn.demon.co.uk.invalid> |
|---|---|
| Date | 2017-05-10 17:45 +0100 |
| Message-ID | <zVJFgtDbO0EZFw5S@invalid.uk.co.demon.merlyn.invalid> |
| In reply to | #8202 |
In it.comp.lang.javascript messaggio <ene1enFes38U1@mid.individual.net>, 2017-05-09 16:19:02, Sandro kensan <kensan@kensan.it> ha scritto: >On 07/05/2017 20:40, diego1966 wrote: > >> var oneDay = 24 * 60 * 60 * 1000; >> var days = Math.floor(diff/oneDay); > >Tra l'altro se c'è il cambio di orario tipicamente in primavera e in >autunno forse non funziona questo sistema. Aggiungi mezza giornata alla data successiva; O utilizzare Math.round invece di Math.floor. -- (c) John Stockton, Surrey, UK. ¬@merlyn.demon.co.uk Turnpike v6.05 MIME. Merlyn Web Site < > - FAQish topics, acronyms, & links.
[toc] | [prev] | [next] | [standalone]
| From | diego1966 <diegocicirello@gmail.com> |
|---|---|
| Date | 2017-05-09 15:13 -0700 |
| Message-ID | <325fd2f4-097c-47b3-991f-62a2798e86ba@googlegroups.com> |
| In reply to | #8200 |
Ringrazio tutti per i suggerimenti , vedrò di capitalizzarli
[toc] | [prev] | [next] | [standalone]
| From | fmassei@gmail.com |
|---|---|
| Date | 2017-05-11 11:44 -0700 |
| Message-ID | <12394d4f-811e-4597-a1ab-3212180fd7b5@googlegroups.com> |
| In reply to | #8200 |
On Sunday, May 7, 2017 at 2:40:06 PM UTC-4, diego1966 wrote: > <snip> Giorni lavorativi tra due date: problema comune. Non è possibile farlo come vuoi te. Ci vuole una base di dati per tenere i festivi che l'azienda per cui fai il lavoro tiene in considerazione. Ci sono aziende che lavorano anche a pasqua e altre che fanno ponti di una settimana. Di solito si fa con una stored procedure su un qualsiasi DBMS, ed è una operazione abbastanza semplice (differenza(-sabati/domeniche)-tutti i giorni compresi tra le date che l'amministratore del sistema mette come festivi). Di solito si fa sul DB perché è una di quelle operazioni che ti servono in una o più views in ogni caso. In JS si richiama in AJAX qualcosa lato server che ritorna il risultato di una query. Ciao!
[toc] | [prev] | [standalone]
Back to top | Article view | it.comp.lang.javascript
csiph-web