begin process at 2012 05 28 03:03:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP / ASP3

 > 

Divers

 > 

Autre

 > 

Pb script jours feriés


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pb script jours feriés

mercredi 6 septembre 2006 à 11:43:18 | Pb script jours feriés

isu_san

Bonjour a tous. j'ai tenté d'utiliser ce scritp http://www.aspfr.com/codes/CALCUL-NOMBRE-JOURS-OUVRABLES-ENTRE-DEUX-DATES_8717.aspx 
et j'ai un soucis au niveau du resultat

je vous copie mon code :
<html>
<head>
<%
function nbjourouvrable(datdeb,datfin)
if datdeb="" or datfin="" then exit function
 
nbjourtot = DateDiff("d",datdeb,datfin) + 1
 
for i=1 to nbjourtot
 
  if ferie(datdeb) then
    nbjourtot = nbjourtot - 1
  end if
 
 datdeb=DateAdd("d",1,datdeb)
 
next
 
nbjour=nbjourtot
End function
 
function ferie(Jour)
if jour="" then exit function
Dim JJ,AA
Dim NbOr, Epacte
Dim PLune, Paques, Ascension, Pentecote
 
JJ = Day(Jour)
mm = Month(Jour)
AA = Year(Jour)
 
If JJ = 1 And mm = 1 Then ferie = True: Exit Function '1 Janvier
If JJ = 1 And mm = 5 Then ferie = True: Exit Function '1 Mai
If JJ = 8 And mm = 5 Then ferie = True: Exit Function '8 Mai
If JJ = 14 And mm = 7 Then ferie = True: Exit Function '14 Juillet
If JJ = 15 And mm = 8 Then ferie = True: Exit Function '15 Août
If JJ = 1 And mm = 11 Then ferie = True: Exit Function '1 Novembre
If JJ = 11 And mm = 11 Then ferie = True: Exit Function '11 Novembre
If JJ = 25 And mm = 12 Then ferie = True: Exit Function '25 Décembre
 
NbOr = (AA Mod 19) + 1
Epacte = (11 * NbOr - (3 + Int((2 + Int(AA / 100)) * 3 / 7))) Mod 30
PLune = CDate("19/04/" & AA) - ((Epacte + 6) Mod 30)
If Epacte = 24 Then PLune = PLune - 1
If Epacte = 25 And (AA >= 1900 And AA < 2000) Then PLune = PLune - 1
 
Paques = PLune - Weekday(PLune) + vbMonday + 7 'Paques
If JJ = Day(Paques) And mm = Month(Paques) Then ferie=true : Exit Function
 
Ascension = Paques + 38 'Ascension
If JJ = Day(Ascension) And mm = Month(Ascension) Then ferie=true : Exit Function
 
'Pentecote = Ascension + 11 'Pentecote
'If JJ = Day(Pentecote) And mm = Month(Pentecote) Then ferie=true : Exit Function
ferie = False
Dim numjour
numjour=weekday(jour,vbmonday)     'fixe à 6 et 7 la valeur du samedi & dimanche
if numjour=6 or numjour=7 then ferie=true : Exit function
End function
%>
</head>
<body>
<form name="myform" method="get">
<input type="text" name="date1"><input type="text" name="date2"><input type="submit" value="ok">

</form>

<%
dim cnt,trai,traitement
if request.querystring("date1")<>"" then
 date_debut=request.querystring("date1")
 date_fin=request.querystring("date2")
 dim ors
 dim objconn
 dim strconn
 set objconn = server.createobject("ADODB.connection")
 strconn= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("../../fpdb/ti.mdb")& ";Persist Security Info=False"
 objconn.open strconn
 reqsql = "select * from ti;"
 set ors = objconn.execute(reqsql)

 do while not ors.eof
 diff_debut=datediff("d",date_debut,ors("date1"))
 diff_fin=datediff("d",ors("date1"),date_fin)
 
  if (diff_debut>0 or diff_debut=0) and (diff_fin>0 or diff_fin=0) then
   cnt=cnt+1
   if ors("nature")<>"Circulaire" then
    if ors("date4")<>"01/01/1900" then
     trai=trai+1
     call nbjourouvrable(ors("date2"),ors("date4"))
     traitement=nbjour
     response.write(ors("date2"))
     response.write("<br>")
     response.write(ors("date4"))
     response.write("<br>")
     response.write(traitement)
     response.write("<br>")
     response.write("<br>")
    end if
   end if 
  end if
 ors.movenext
 loop
end if
 %>
</body>
</html>

pardon c'est un peu long....
bon je m'explique, dans ma base de donnée c'est une liste de document qui comporte differentes dates. date1 la date du document, date2 et date4 d'autres dates que je dois comparer pour recuperer le nb de jours ouvrés qui les separent. je dois faire cette comparaison pour tous les documents dont la date (date1) est comprise entre les dates du formulaires. (vous suivez toujours ??)

ca marche presque, mon probleme, et je ne comprends vraiment pas pourquoi c'est qu'il m'affiche tout ca, sauf pour la premiere ligne!! a priori sur la premiere opération la variable nbjourtot n'est pas reconnue...

aidez moi par pitié je vais devenir fou !!!

jeudi 7 septembre 2006 à 11:12:34 | Re : Pb script jours feriés

isu_san

Hello
Bon puisque ca n'a pas l'air de vous inspirer on va faire plus simple
toujours cette fonction:
function nbjourouvrable(datdeb,datfin)
if datdeb="" or datfin="" then exit function 
nbjourtot = DateDiff("d",datdeb,datfin) + 1 
for i=1 to nbjourtot 
  if ferie(datdeb) then
    nbjourtot = nbjourtot - 1
  end if 
 datdeb=DateAdd("d",1,datdeb) 
next 
nbjour=nbjourtot
End function 
function ferie(Jour)
if jour="" then exit function
Dim JJ,AA
Dim NbOr, Epacte
Dim PLune, Paques, Ascension, Pentecote 
JJ = Day(Jour)
mm = Month(Jour)
AA = Year(Jour) 
If JJ = 1 And mm = 1 Then ferie = True: Exit Function '1 Janvier
If JJ = 1 And mm = 5 Then ferie = True: Exit Function '1 Mai
If JJ = 8 And mm = 5 Then ferie = True: Exit Function '8 Mai
If JJ = 14 And mm = 7 Then ferie = True: Exit Function '14 Juillet
If JJ = 15 And mm = 8 Then ferie = True: Exit Function '15 Août
If JJ = 1 And mm = 11 Then ferie = True: Exit Function '1 Novembre
If JJ = 11 And mm = 11 Then ferie = True: Exit Function '11 Novembre
If JJ = 25 And mm = 12 Then ferie = True: Exit Function '25 Décembre 
NbOr = (AA Mod 19) + 1
Epacte = (11 * NbOr - (3 + Int((2 + Int(AA / 100)) * 3 / 7))) Mod 30
PLune = CDate("19/04/" & AA) - ((Epacte + 6) Mod 30)
If Epacte = 24 Then PLune = PLune - 1
If Epacte = 25 And (AA >= 1900 And AA < 2000) Then PLune = PLune - 1 
Paques = PLune - Weekday(PLune) + vbMonday + 7 'Paques
If JJ = Day(Paques) And mm = Month(Paques) Then ferie=true : Exit Function 
Ascension = Paques + 38 'Ascension
If JJ = Day(Ascension) And mm = Month(Ascension) Then ferie=true : Exit Function 
'Pentecote = Ascension + 11 'Pentecote
'If JJ = Day(Pentecote) And mm = Month(Pentecote) Then ferie=true : Exit Function
ferie = False
Dim numjour
numjour=weekday(jour,vbmonday)     'fixe à 6 et 7 la valeur du samedi & dimanche
if numjour=6 or numjour=7 then ferie=true : Exit function
End function

ensuite plus loin je fais

call nbjourouvrable(date1,date2)

ca fonctionne
mon soucis, c'est que je dois le faire plusieurs fois avec un while et que je n'arrive pas a recuperer le resultat de la fonction dans une variable. ou et quand dois je recuperer le resultat ???

jeudi 7 septembre 2006 à 17:36:43 | Re : Pb script jours feriés

isu_san

Réponse acceptée !

bon ben voila, pour une fois le newbbie a trouver tout seul...

 

merci a ceux qui ont cherché



Cette discussion est classée dans : function, and, ferie, exit, jj


Répondre à ce message

Sujets en rapport avec ce message

randomize [ par beb ] SELECT * FROM TableTest where Champ1 Like '" & Rech & "' and (( Code Like '" & cod & "' and OK Like '" & ok & "') or ( local Like '" & loc & "' and Appel d'une function à partir d'une image [ par Wassup ] j'aimerais en cliquant sur une image appeller une function en passant un paramêtre, du style :ouvrepopavec(fichier.htm)J'ai essayé les événements1)... Appel d'une fonction à partir d'une image [ par Wassup ] j'aimerais en cliquant sur une image appeller une function en passant un paramêtre, du style :ouvrepopavec(fichier.htm)J'ai essayé les événements1)... Base prb simple mais pas si sur .... [ par Troyan ] voici la requete qui marche pas et qui devrait me sauver la vie !!SELECT Table1.id, Table1.NomFROM Table1 INNER JOIN Table2 ON Table1.id = Table2.id_t erreur '80040e14'?????????????????? [ par glopglop ] Dans ma requete suivante on me dit :)en trop dans.......rsAffichedispo.Open "Select nom_dispo,domaine, public,nomnature, montant,date_depos,condition erreur '80040e14'????????? c'est quoi ca!!! [ par glopglop ] Dans ma requete suivante on me dit :)en trop dans.......rsAffichedispo.Open "Select nom_dispo,domaine, public,nomnature, montant,date_depos,condition date -15 jours [ par cloe ] BonjourVoila mon pb,J'ai une date au format jj/mm/aaaa.Je dois savoir si elle est dans l'intervalle des 15 derniers jours par rapport à la date actuel Sélection dans plusieurs tables [ par seb ] Bonjour,Voici mon problème :J'ai une base de données avec plusieurs tables dans lesquelles je dois récupérer des informations. Le code ci-dessous fonc Comparaison de dates [ par ChS ] Salut à tous, Help pleaseJ'ai une table qui contient des enregistrements datés (format date-heure ds Access). Les insert se passent bien, les select p ARGGG HELP ME PLEASE [ par max12 ] Il m'affiche l'erreur suivante - Microsoft][Pilote ODBC Microsoft Access] L'opération doit utiliser une requête qui peut être mise à jour.Lorsque je


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,683 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales