حلت المساعدة في حساب فترة زمنية

kelam

عضو مميز في منتدى الهندسة المدنية والمعمارية
إنضم
3 ديسمبر 2016
المشاركات
1.429
مستوى التفاعل
1.963

polo2009

عضو
إنضم
23 أوت 2017
المشاركات
56
مستوى التفاعل
12
dAte1 est une Date=SAI_DATEDEBUT
dAte2 est une Date=SAI_DATEFIN
SI dAte2..Jour > 30 ALORS
dAte2..Jour =30
FIN
SI dAte1..Jour > 30 ALORS
dAte1..Jour=30
FIN
nPeriode est un entier
SI dAte1..Année<=dAte2..Année ALORS
SI dAte1..Jour<=dAte2..Jour ALORS
nPeriode=dAte2..Jour-(dAte1..Jour-1)
// info("jour fin"+dAte2..Jour)
// info("jour debut"+dAte1..Jour)
// Info(nPeriode)
SI dAte1..Mois<=dAte2..Mois ALORS
nPeriode+=(dAte2..Mois-dAte1..Mois)*30
// Info(nPeriode)
nPeriode+=(dAte2..Année-dAte1..Année)*360
// Info(nPeriode)
SINON
dAte2..Année-=1
nPeriode+=((dAte2..Mois+12)-dAte1..Mois)*30
nPeriode+=(dAte2..Année-dAte1..Année)*360
FIN
SINON
dAte2..Mois-=1
nPeriode=((dAte2..Jour+30)-(dAte1..Jour-1))
SI dAte1..Mois<=dAte2..Mois ALORS
nPeriode+=(dAte2..Mois-dAte1..Mois)*30
nPeriode+=(dAte2..Année-dAte1..Année)*360
SINON
dAte2..Année-=1
nPeriode+=((dAte2..Mois+12)-dAte1..Mois)*30
nPeriode+=(dAte2..Année-dAte1..Année)*360
FIN

FIN
SINON
Info("Année de fin doit etre supperieur à année de debut ")
FIN
الكود مجرب 100/100
شكرا جزيلا أخي الكريم على المساعدة nasser84mil
 

babibend

عضو جديد
إنضم
19 مارس 2015
المشاركات
1
مستوى التفاعل
1
PROCEDURE CPrd(dDub est une Date,dFin est une Date)
JJ, MM, AA, R sont des entiers
AA = dFin..Année - dDub..Année
MM = dFin..Mois - dDub..Mois
JJ = dFin..Jour
IF JJ = LDay(dFin) THEN
JJ = 30
END
JJ = JJ - ((dDub..Jour) - 1)
SI (MM = 0) AND (AA = 0) ALORS
RENVOYER JJ
FIN
R = (AA * 12 + MM) * 30 + JJ

RENVOYER R
==========================
PROCEDURE LDay(dDT est une Date)
dDT..Jour=31
RENVOYER dDT..Jour​
 
أعلى