ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Nombre d'années entières entre deux dates ou date-heures   



L'auteur

FoxInCloud (Th. Nivelet)
France France
Membre Simple
# 0000000014
enregistré le 13/10/2004

http://www.foxincloud.com/
Nivelet Thierry
75016 Paris
de la société Abaque
Fiche personnelle


Note des membres
pas de note

Contributions > 01 - PRG : Programmation > Temps - heures - Dates - Calendriers

Nombre d'années entières entre deux dates ou date-heures
# 0000000635
ajouté le 04/09/2008 10:55:21 et modifié le 04/09/2008
consulté 4355 fois
Niveau débutant

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0
VFP 5.0
VFP 3.0

Description
âge révolu
Code source :
  FUNCTION iYears && Années entières entre deux dates ou date-heures
  LPARAMETERS ;
    tdBeg,; && date début
    tdEnd && date fin

  LOCAL lcTypeBeg, lcTypeEnd, llResult, liResult
  liResult = NULL
  lcTypeBeg = Vartype(m.tdBeg)
  lcTypeEnd = Vartype(m.tdEnd)
  llResult = m.lcTypeBeg $ 'DT' AND m.lcTypeEnd $ 'DT'
  ASSERT m.llResult MESSAGE Textmerge([<<Program()>> - Deux paramètres date ou date-heure attendu eu lieu de <<m.tdBeg>> et <<m.tdEnd>>])
  IF m.llResult

    tdBeg = Iif(m.lcTypeBeg == 'T'Ttod(m.tdBeg), m.tdBeg)
    tdEnd = Iif(m.lcTypeEnd == 'T'Ttod(m.tdEnd), m.tdEnd)

    LOCAL lnMonthEnd, lnMonthBeg
    lnMonthEnd = Month(m.tdEnd)
    lnMonthBeg = Month(m.tdBeg)

    liResult = Year(m.tdEnd) - Year(m.tdBeg) ;
      - Iif(m.lnMonthEnd < m.lnMonthBeg OR m.lnMonthEnd = m.lnMonthBeg AND Day(m.tdEnd) < Day(m.tdBeg), 1, 0)
  ENDIF

  RETURN m.liResult

  * ---------------------------------------------------------
  PROCEDURE iYears_test && Teste iYears()

  ? 6 = iYears(Date(2000, 9, 15), Date(2007, 2, 15))
  ? 7 = iYears(Date(2000, 9, 15), Date(2007, 9, 15))

Commentaires
Aucun commentaire enregistré ...

Publicité

Les pubs en cours :

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2018.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0