Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/04/2011, 16h35   #1
Invité de passage
 
Homme Christophe HERBERT
Assistant aux utilisateurs
Inscription : avril 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Christophe HERBERT
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2011
Messages : 2
Points : 0
Points : 0
Par défaut INTNX / mois de 30 jours

Bonjour,
je recherche une fonction ou un paramètre de la fonction INTNX qui me permettrait de retirer un intervalle de temps (en jours) à une date.

Le problème c'est que je dois partir du principe que les mois ont 30 jours et les années donc 360 jours.

Merci car ça me permettrait de simplifier tout ce code (qui fonctionne d'ailleurs) :

j360 est le nombre de jours que je veux retirer à ma date
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
aa360=int(j360/360);
mm360=int(((j360/360)-aa360)*12);
jj360=(((((j360/360)-aa360)*12)-mm360)*30);
 
jj = day  (intnx("day"  ,date,-jj360));
mm = month(intnx("month",date,-mm360));
aa = year (intnx("year" ,date,-aa360));
 
/* pour fin fevrier ou jour =31 */
IF (mm = 02 AND jj>28)
OR (jj = 31)
OR (jj = 30 & mm IN (04 06 09 11))
then do;
   date+1;
   jj = day  (intnx("day"  ,date,-jj360));
   mm = month(intnx("month",date,-mm360));
   aa = year (intnx("year" ,date,-aa360));
   ancn = mdy(mm,jj,aa)-1;
end;
else ancn = mdy(mm,jj,aa);
kristofherbert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2011, 15h21   #2
Invité de passage
 
Homme Christophe HERBERT
Assistant aux utilisateurs
Inscription : avril 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : Homme Christophe HERBERT
Localisation : France, Seine Saint Denis (Île de France)

Informations professionnelles :
Activité : Assistant aux utilisateurs
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2011
Messages : 2
Points : 0
Points : 0
Et bien, pas de réponse ? 3 possibilités :
- j'ai mal formulé ma question
- la fonction que je recherche n'existe pas
- ça n'intéresse personne

Bon bien tant pis, j'aurai tout de même essayé. Je vais rester avec mon code que je vais encapsuler en macro code.
kristofherbert est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 15h40   #3
Membre Expert
 
Inscription : mars 2005
Messages : 1 010
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 010
Points : 1 258
Points : 1 258
Envoyer un message via Yahoo à bahraoui
la fonction intck te permet de calculer des intervalles, je ne sais pas si ça répond à ta question
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h37.


 
 
 
 
Partenaires

Hébergement Web