Calcolo anni, mesi e giorni tra due date

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 130444
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sommario
Il programma in questo articolo viene illustrato dall'esempio come calcolare la combinazione di giorni, mesi e anni tra due date (Data di inizio e Data fine) passati come parametri di Data.

Nota: La data di inizio deve essere una data precedente alla data di fine.
Informazioni
Per eseguire il programma, è necessario salvare il codice riportato di seguito come BTWNDATE.PRG. Quindi eseguire il comando riportato di seguito in cui DataInizio e DataFine sono valori di data:
DO BTWNDATE.PRG WITH startdate, enddate				
ad esempio:
DO BTWNDATE WITH {01/05/93},{01/05/95}				

Esempio di codice

   *   * BTWNDATE.PRG   *   PARAMETERS startdate, enddate   IF startdate > enddate        WAIT WINDOW "Start date must " + CHR(13) ;        + "be earlier than End date"        RETURN   ENDIF   IF PARAMETERS() <> 2        WAIT WINDOW "Not Correct Number of Parameters"        RETURN   ENDIF   PRIVATE  precmpdate, vyears, vmonths, vdays   precmpdate={}   vyears=0   vmonths=0   vdays=0      * Calculate:   *     endofmonth is the last day of month prior to month of enddate   *      endofmonth = CTOD(ALLTRIM(STR(MONTH(enddate))) + '/' + "01" + '/' + ;   ALLTRIM(STR(YEAR(enddate)))) - 1   *   IF MONTH(startdate) <= MONTH(enddate)        vyears = YEAR(enddate) - YEAR(startdate)        IF DAY(startdate) <= DAY(enddate)             vmonths = MONTH(enddate) - MONTH(startdate)             vdays = DAY(enddate) - DAY(startdate)        ELSE             IF MONTH(startdate) = MONTH(enddate)                  vyears = vyears - 1             ENDIF             vmonths = MOD(MONTH(enddate) - MONTH(startdate) - 1 + 12, 12)             vdays = endofmonth - precmpdate + DAY(enddate)        ENDIF   ELSE        vyears = YEAR(enddate) - YEAR(startdate) - 1        IF DAY(startdate) > DAY(enddate)             vmonths = MONTH(enddate) - MONTH(startdate) + 12 - 1             vdays = endofmonth - precmpdate + DAY(enddate)        ELSE             vmonths = MONTH(enddate) - MONTH(startdate) + 12             vdays = DAY(enddate) - DAY(startdate)        ENDIF   ENDIF   CLEAR   WAIT WINDOW  CHR(13) + ;             '  Years: '  + STR(vyears) + CHR(13) + ;             ' Months: ' + STR(vmonths) + CHR(13) + ;             '   Days: ' + STR(vdays) + CHR(13) + ;             CHR(13) + ;             ' Between ' + DTOC(startdate) + CHR(13) +;             '     and ' + DTOC(enddate)   RETURN				

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 130444 - Ultima revisione: 12/04/2015 11:23:34 - Revisione: 2.3

Microsoft Visual FoxPro 3.0 Standard Edition, Microsoft Visual FoxPro 6.0 Professional Edition, Microsoft FoxPro 2.5b, Microsoft FoxPro 2.5a, Microsoft FoxPro 2.5b, Microsoft FoxPro 2.6 Standard Edition, Microsoft FoxPro 2.6a Standard Edition, Microsoft FoxPro 2.5b for MS-DOS, Microsoft FoxPro 2.5a, Microsoft FoxPro 2.5b for MS-DOS, Microsoft FoxPro 2.6 per MS-DOS, Microsoft FoxPro 2.6a Standard Edition

  • kbnosurvey kbarchive kbmt kbhowto KB130444 KbMtit
Feedback