Settimane + giorni in Access

di il
13 risposte

Settimane + giorni in Access

Salve

sono un neofita. 

Ho creato un modesto DB in cui, tra l'altro, in una maschera immetto una data in una casella di testo (Datainserita) ed in un altra casella (settimane) ho previsto il calcolo della differenza, in settimane, tra quella data e “oggi”. La formula è " =DateDiff("g";[DataInserita];Date())/7".

Logicamente se il numero di settimane non è un numero intero compaiono, dopo la virgola i decimi di una settimana.

per esempio

Datainserita: 21/09/2023  > settimane: 15,3  (essendo oggi 06/01/2024)

Invece io vorrei che il risultato fosse composto dal numero (intero) di settimane compiute ed intercorse fino ad oggi più il numero di giorni (chiaramente max 6).

e quindi (come all'esempio) il risultato fosse :

Datainserita: 21/09/2023  > 15 settimane + 2 giorni

Spero di essere stato chiaro.

Ribadisco di essere un neofita e di conseguenza una soluzione complessa mi creerebbe difficoltà…

Grazie

13 Risposte

  • Re: Settimane + giorni in Access

    Utilizza la funzione Int per estrarre la parte intera (le settimane) e calcolare per differenza la parte numerica dopo la virgola che servirà per determinare il numero giorni.

  • Re: Settimane + giorni in Access

    Oggi - 21/09/23 = 107 gg

    107/7=15,qualcosa

    15*7=105

    Ergo 107-105=2 (il qualcosa che restava)

    Ne consegue che oggi - 21/09/2023 = 15 settimane e 2 giorni

    Oppure utilizzando i decimali:

    Sapendo che 1/7=0,1428;

    Che la parte decimale di 107/7=15,2857;

    Abbiamo:

    0,2857/0,1428 = 2

    Se fosse stato 108/7=15,4285

    4285/1428=3

    Puoi crearti una tabellina:

    1/7=0,1428

    2/7=0,2857

    Ecc…

    La parte decimale ti informa sul giorno sfuso…

  • Re: Settimane + giorni in Access

    Oppure:

    DateDiff("ww";[DataInserita];Date())

    ti calcola il numero di settimane.

    Dopidichè:

    DateDiff("ww";[DataInserita];Date()) * 7

    ti restituice il numero di giorni nelle settimane complete dell'intervallo.

    Sottrai questo valore al numero di giorni nell'intervallo:

    DateDiff("d";[DataInserita];Date())-(DateDiff("ww";[DataInserita];Date()) * 7)

    e ottieni il residuo dei giorni oltre le settimane calcolate.

  • Re: Settimane + giorni in Access

    Il calcolo  delle settimane non è formalmente stupido… l'assunto della settimana nel calendaruo standard è che inizia lunedi… non quando si vuole… quindi questo potrebbe complicare nella realtà il calcolo…

    Quindi se devi calcolare il numero di settimane come fai va bene, per i giorni in esubero usa 

    SETTIMANE=NumeroGiorni\7 (attento al backslash)
    Resto=NumeroGiorni MOD 7

    Se invece devi calcolare il numero della settimana in cui vai a cadere…. la cosa è più complessa.

  • Re: Settimane + giorni in Access

    Ci avevo pensato, ma lui vuole la differenza in settimane (Come quando il medico il giovedì dice “le prenda per due settimane” oppure “ci vediamo fra una settimana”, non ti poni il problema di quando iniziare a contate) nel senso che tra il 6/1/24 e il 10/1/24 passano 0 settimane e 5 giorni. 

    Ragionando in settimane annue (52 in un anno) sarebbero 1 settimana e 3 giorni.

  • Re: Settimane + giorni in Access

    Altro metodo:

    Per x da 1 a 6

    Se differenza-intreo(differenza)=(x/7) allora giorno=x

  • Re: Settimane + giorni in Access

    Ringrazio tutti voi per le risposte e sono felice di aver stimolato, da neofita, una discussione interessante anche agli esperti.

    Ora devo tirare le somme…

    Dato che :

    1. nella casella “Data” inserisco la data di partenza
    2. nella casella "Settimane" il numero intero di settimane compiute ed intercorse da quella data ad oggi
    3. nella casella “Giorni” il numero di giorni oltre il numero delle settimane (chiaramente max 6)

    Come e dove mi consigliate di inserire le varie formule ?

    Sarei felice se mi fate un esempio concreto.

    Di nuovo grazie.

  • Re: Settimane + giorni in Access

    Formule? Caselle?

    Parliamo di excell?

  • Re: Settimane + giorni in Access

    Semmai Excel con una elle…

    Comunque, intende caselle di testo nella maschera…

  • Re: Settimane + giorni in Access

    08/01/2024 - oregon ha scritto:


    Semmai Excel con una elle…

    Comunque, intende caselle di testo nella maschera…

    Vero…

    Più che di formula parlerei di codice.

    Scrivi su un pulsante, su una funzione, sul metodo keypress intercettando il tasto invio, scrivilo dove vuoi.

    Appena trovi gli interi (settimane) e controlli i decimali a quanti x/7 corrispondono ricavi i giorni.

    Poi li inserisci dove vuoi, anche in un messaggio.

  • Re: Settimane + giorni in Access

    08/01/2024 - aurecop51 ha scritto:


    Ringrazio tutti voi per le risposte e sono felice di aver stimolato, da neofita, una discussione interessante anche agli esperti.

    Ora devo tirare le somme…

    Dato che :

    1. nella casella “Data” inserisco la data di partenza
    2. nella casella "Settimane" il numero intero di settimane compiute ed intercorse da quella data ad oggi
    3. nella casella “Giorni” il numero di giorni oltre il numero delle settimane (chiaramente max 6)

    Come e dove mi consigliate di inserire le varie formule ?

    Sarei felice se mi fate un esempio concreto.

    Di nuovo grazie.

    Metti 3 TextBox, chiamale così o modifica anche i riferimenti dei calcoli:

    1. [txtTotDays] in questa metti il calcolo totale dei GG, come Origine Controllo metti 
    =DateDiff("g";TuaDataIniziale;Date())

    2. [txtTotWeeks] in questa metti il calcolo Settimane, come Origine Controllo metti 

    =[txtTotDays]\7

    3. [txtDays] in questa metti i giorni residui o resto e come Origine Controllo scrivi:

    =[txtTotDays] MOD 7

    Poi visualizza quello che vuoi… e come vuoi.

  • Re: Settimane + giorni in Access

    06/01/2024 - aurecop51 ha scritto:


    ho previsto il calcolo della differenza, in settimane, tra quella data e “oggi”.

    Chiaramente se visualizzi il record domani il calcolo salta…

  • Re: Settimane + giorni in Access

    Vi ringrazio

    appena potrò  verificherò e vi dirò. (sperando che le mie limitate capacità informatiche me lo consentano).

    Buon lavoro. a presto

Devi accedere o registrarti per scrivere nel forum
13 risposte