Zeit-Macro-Variablen, passend zu einem Tag
Der Macro %zeiten erstellt passend zum aktuellen Tagesdatum (default) oder zu einem beliebigen anderen Datum Zeit-Macro-Variablen.
"Passende" Zeit-Macro-Variablen sind z. B.
- Anfang der VorWoche, wahlweise Sonntag oder Montag
- Ende der VorWoche, wahlweise Fr, Sa, oder So
- die "letzten 12 Monate" (von &VJJAMON6. bis &VORMON6. sind genau 12 Monate)
- Vormonat (Anfang/ Ende), wichtig bei Jahreswechsel !!!
Einmal global definiert können die Zeit-Macro-Variablen in allen SAS-Macro-Programmen verwendet werden. Eine tolle Sache, z.B.
- wenn regelmäßig und dynamisch auf einen bestimmten Zeitraum selektiert werden muß
- zum erstellen von Jahresvergleichen über ein gleiches Zeitfenster
Beispiel für 13. Oktober 1999:
Output:
Doku/Muster der Zeit-Definitionen (Vor-Monat, etc)
Durch den Macro 'zeiten' stehen folgende automatisch geladene
Macro-Variablen mit Zeiten zur Verfügung
Im Beispiel gilt:
TestDatu= 19991013 (akt. Tag im Beispiel)
aktyy4 ist 2006 akt. Jahr zu akt. Datum
vormon8 ist 19990930 Vor-Monat, im 'passenden Jahr', mit LETZTEM Tag im Monat
vormon6 ist 199909 Vor-Monat, im 'passenden Jahr'
vvormon6 ist 199908 Vor-Vor-Monat, im 'passenden Jahr'
vjjvmon8 ist 19980901 Vor-Monat, im Vor-Jahr, mit 1. Tag im Monat
vjjvmon6 ist 199809 Vor-Monat, im Vor-Jahr
vvjvmon6 ist 199709 Vor-Monat, im Vor-Vor-Jahr
vjvvmon6 ist 199808 Vor-Vor-Monat, im Vor-Jahr
vjjamon8 ist 19981001 Monat, im Vor-Jahr, mit 1. Tag im Monat
vjjamon6 ist 199810 Monat, im Vor-Jahr
(AnwendungsBsp: von 199810 bis 199909 sind genau 12 Monate)
vorqtr6 ist 199903 Vor-Quartal, im 'passenden Jahr'
vjjvqtr6 ist 199803 Vor-Quartal, im Vor-Jahr
voryy6 ist 199801 Vor-Jahr, mit 1. Monat im Jahr
voryy4 ist 1998 Vor-Jahr
VORKWa8 ist 19991004 Vor-Woche, erster Arbeits-Tag==Anfang der Vorwoche
(wenn Wochen-Anf.=Montag [erster Arbeitstag])
VORKWe8 ist 19991009 Vor-Woche, letzter Arbeits-Tag==Ende der Vorwoche
(wenn Wochen-Ende=Samstag [Sa=letzter Arbeitstag])
VORKWFR8 ist 19991008 Vor-Woche, letzter Arbeits-Tag==Ende der Vorwoche
(wenn Wochen-Ende=Freitag [Fr=letzter Arbeitstag])
VORKWSA8 ist 19991009 Vor-Woche, letzter Arbeits-Tag==Ende der Vorwoche
(wenn Wochen-Ende=Samstag [Sa=letzter Arbeitstag])
VORKWSO8 ist 19991010 Vor-Woche, letzter Arbeits-Tag==Ende der Vorwoche
(wenn Wochen-Ende=Sonntag [So=letzter Arbeitstag])
vvoryy4 ist 1997 Vor-Vor-Jahr
vvoryy6 ist 199701 Vor-Vor-Jahr, mit 1. Monat im Jahr
Beispiel für 29. September 2006 (heute):
Output:
Doku/Muster der Zeit-Definitionen (Vor-Monat, etc)
Durch den Macro 'zeiten' stehen folgende automatisch geladene
Macro-Variablen mit Zeiten zur Verfügung
Im Beispiel gilt:
TestDatu= 20060929 (akt. Tag im Beispiel)
aktyy4 ist 2006 akt. Jahr zu akt. Datum
vormon8 ist 20060831 Vor-Monat, im 'passenden Jahr', mit LETZTEM Tag im Monat
vormon6 ist 200608 Vor-Monat, im 'passenden Jahr'
vvormon6 ist 200607 Vor-Vor-Monat, im 'passenden Jahr'
vjjvmon8 ist 20050801 Vor-Monat, im Vor-Jahr, mit 1. Tag im Monat
vjjvmon6 ist 200508 Vor-Monat, im Vor-Jahr
vvjvmon6 ist 200408 Vor-Monat, im Vor-Vor-Jahr
vjvvmon6 ist 200507 Vor-Vor-Monat, im Vor-Jahr
vjjamon8 ist 20050901 Monat, im Vor-Jahr, mit 1. Tag im Monat
vjjamon6 ist 200509 Monat, im Vor-Jahr
(AnwendungsBsp: von 200509 bis 200608 sind genau 12 Monate)
vorqtr6 ist 200602 Vor-Quartal, im 'passenden Jahr'
vjjvqtr6 ist 200502 Vor-Quartal, im Vor-Jahr
voryy6 ist 200501 Vor-Jahr, mit 1. Monat im Jahr
voryy4 ist 2005 Vor-Jahr
VORKWa8 ist 20060918 Vor-Woche, erster Arbeits-Tag==Anfang der Vorwoche
(wenn Wochen-Anf.=Montag [erster Arbeitstag])
VORKWe8 ist 20060923 Vor-Woche, letzter Arbeits-Tag==Ende der Vorwoche
(wenn Wochen-Ende=Samstag [Sa=letzter Arbeitstag])
VORKWFR8 ist 20060922 Vor-Woche, letzter Arbeits-Tag==Ende der Vorwoche
(wenn Wochen-Ende=Freitag [Fr=letzter Arbeitstag])
VORKWSA8 ist 20060923 Vor-Woche, letzter Arbeits-Tag==Ende der Vorwoche
(wenn Wochen-Ende=Samstag [Sa=letzter Arbeitstag])
VORKWSO8 ist 20060924 Vor-Woche, letzter Arbeits-Tag==Ende der Vorwoche
(wenn Wochen-Ende=Sonntag [So=letzter Arbeitstag])
vvoryy4 ist 2004 Vor-Vor-Jahr
vvoryy6 ist 200401 Vor-Vor-Jahr, mit 1. Monat im Jahr
Und die Macro-Definition:
*
* Zeit-Definitionen (Vor-Monat, etc)
*
* folgende Macros stehen zur Verfügung:
* %zeiten;
*
*------------------------------------------------------------- */
%macro zeiten(TestDatu=);
/*-----------------------------------------------------------------
* Zeit-Definitionen (Vor-Monat, etc)
*
* Vor-Monats-Berechnung, neu+richtig:
* Bedeutet Vormonat mit dem "passenden" Jahr,
* wichtig zB bei "Vormonat von Januar".
*
* Durch
* %zeiten;
* stehen folgende, automatisch geladene
*
* Macro-Variablen mit Zeiten zur Verfügung:
*
* Beispiel mit TestDatu=19991013
*
* AKTyy4 = 1999 akt. Jahr zu akt. Datum
* AKTmm2 = 10 akt. Monat zu akt. Datum
* AKTdd2 = 13 akt. Tag zu akt. Datum
* AKTdat8 = 19991013 akt. Datum zu akt. Datum
* (INFO: sysdate9 enthält mm3 statt mm2 !!!)
* VORQTR6 = 199903 Vor-Quart. im "passend. Jahr"
* VJJVQTR6 = 199803 Vor-Quart. im Vor-Jahr
* VORMON8 = 19990930 Vor-Monat im "passend. Jahr",
* mit LETZTEM Tag im Monat
* VORMON6 = 199909 Vor-Monat im "passend. Jahr"
* VVORMON6 = 199908 Vor-Vor-Monat im "passend. Jahr"
* VJVVMON6 = 199808 Vor-Vor-Monat, im Vor-Jahr
* VVJVMON6 = 199709 Vor-Monat, im Vor-Vor-Jahr
* VJJVMON6 = 199809 Vor-Monat, im Vor-Jahr
* VJJAMON8 = 19981001 Monat, im Vor-Jahr 1.Tag d.Monat
* VJJAMON6 = 199810 Monat, im Vor-Jahr
*
* (AnwendungsBsp:
* von &VJJAMON6. bis &VORMON6. sind genau 12 Monate)
* VORYY6 = 199801 Vor-Jahr, mit 1. Monat im Jahr
* VORYY4 = 1998 Vor-Jahr
* VORKWe8 = 19991009 Vor-Woche,
* ltz. Arbeits-Tag==Ende der Vorwoche
* (Wochen-Ende=Samstag [Sa=letzter Arbeitstag])
* VORKWa8 = 19991004 Vor-Woche, erster Arb.Tag==Anf. Vorw.
* (Wochen-Anf.=Montag [Mo=erster Arbeitstag])
* V4KW8 = 19990913 Vor-4-Woch., 1. Arb.Tag==Anf. Vor-4-Woch.
* (Wochen-Anf.=Montag [erster Arbeitstag])
* VVorYY4 = 1997 Vor-Vor-Jahr
* VVVYY4 = 1996 Vor-Vor-Vor-Jahr
*
* Verwendungs-Muster für Zeit-Makros:
* ===================================
* Bsp. 1) bis "Vor-VorMonat"
* alle drei Varianten machen im Endeffekt das gleiche!
* data datei2;
* set datei1;
* if datum < "&VORMON6.01";
* run;
*
* data datei2;
* set datei1;
* if aufmonat <= "&VVORMON6.";
* run;
*
* data datei2;
* set datei1;
* if aufdatum <= "&VVORMON6.31";
* run;
*
* Bsp. 2) "Vor-VorMonat" bis 12Monat rückwärts,
* (hier: von 19980901 bis 19990831, wenn "heute"=19991013)
* data datei2;
* set datei1;
* if "&VJJVMON6.01" <= aufdatum < "&VORMON6.01";
* run;
*
*------------------------------------------------------------- */
/* -------------------------------------------------------
Definition von aktdatum mit eigenem Macro
-------------------------------------------------------
*/
%macro aktdatum;
%global aktyy4;
%let aktyy4=%substr(&SYSDATE9.,6,4);
%global aktdd2;
%let aktdd2=%substr(&SYSDATE9.,1,2); /* 20010911: mit aktdd2 */
%global aktmm2;
%let aktmm3=%substr(&SYSDATE9.,3,3); /* 20010911: mit aktmm3, nur Hilfs-Variable! */
%if &aktmm3. eq JAN %then %let aktmm2=01; /* 20010911: mit aktmm2 */
%else %if &aktmm3. eq FEB %then %let aktmm2=02;
%else %if &aktmm3. eq MAR %then %let aktmm2=03;
%else %if &aktmm3. eq APR %then %let aktmm2=04;
%else %if &aktmm3. eq MAY %then %let aktmm2=05;
%else %if &aktmm3. eq JUN %then %let aktmm2=06;
%else %if &aktmm3. eq JUL %then %let aktmm2=07;
%else %if &aktmm3. eq AUG %then %let aktmm2=08;
%else %if &aktmm3. eq SEP %then %let aktmm2=09;
%else %if &aktmm3. eq OCT %then %let aktmm2=10;
%else %if &aktmm3. eq NOV %then %let aktmm2=11;
%else %if &aktmm3. eq DEC %then %let aktmm2=12;
%else %let aktmm2=99;
%global aktdat8;
%let aktdat8=&aktyy4.&aktmm2.&aktdd2.; /* 20010911: mit aktdat8 */
%mend aktdatum;
%aktdatum; /* definiert &aktyy4. &aktmm2. &aktdd2 &aktdat8 */
data _null_;
%if &TestDatu. eq
%then %do;
aktdatum = date();
%end;
%else %do;
aktdatum = input("&TestDatu.", yymmdd8.);
%end;
/* Zwischen-Schritte: 1. Tag im akt. Monat */
/* 1. Monat im akt. Jahr */
/* (unkritisch, denn JEDER Monat hat den Tag '01', ...) */
aktmm8c = put(year( aktdatum), z4.)
|| put(month(aktdatum), z2.)
|| '01';
aktyy8c = put(year( aktdatum), z4.)
|| '01'
|| '01';
/* Konvertierung von char ins SAS-date-Format */
aktmm8d = input(aktmm8c, yymmdd8.);
aktyy8d = input(aktyy8c, yymmdd8.);
/* End-Schritt: ... minus 1 ergibt letzten Tag im Vor-Monat */
/* intnx(..) geht nur mit SAS-date-Variable */
vormm8d = intnx( 'day' , aktmm8d, -1 );
/* Konvertierung vom SAS-date-Format ins char-Format */
vormm8c = put(year( vormm8d), z4.)
|| put(month(vormm8d), z2.)
|| put(day( vormm8d), z2.);
vormon8 = vormm8c;
put vormon8=;
%global vormon8;
call symput('vormon8', vormon8);
/* End-Schritt2: Akt-Tag minus 1 Monat ergibt (1. Tag im) */
/* Vor-Monat im "passenden" Jahr */
/* intnx(..) geht nur mit SAS-date-Variable */
vormm6d = intnx( 'month', aktdatum, -1 );
vormon6 = put(year( vormm6d), z4.)
|| put(month(vormm6d), z2.);
put vormon6=;
%global vormon6;
call symput('vormon6', vormon6);
/* End-Schritt2.1: Akt-Tag minus 2 Monate ergibt (1. Tag im) */
/* Vor-Vor-Monat im "passenden" Jahr */
/* intnx(..) geht nur mit SAS-date-Variable */
vvormm6d = intnx( 'month', aktdatum, -2 );
vvormon6 = put(year( vvormm6d), z4.)
|| put(month(vvormm6d), z2.);
put vvormon6=;
%global vvormon6;
call symput('vvormon6', vvormon6);
/* End-Schritt3a: Vor-Monat minus 12 Monate ergibt */
/* 1. Tag im Vor-Monat im Vor-Jahr */
/* intnx(..) geht nur mit SAS-date-Variable */
vjjvmm8d = intnx( 'month', vormm8d, -12 );
/* Konvertierung vom SAS-date-Format ins char-Format */
vjjvmm8c = put(year( vjjvmm8d), z4.)
|| put(month(vjjvmm8d), z2.)
|| put(day( vjjvmm8d), z2.);
vjjvmon8 = vjjvmm8c;
put vjjvmon8=;
%global vjjvmon8;
call symput('vjjvmon8', vjjvmon8);
vjjvmm6c = put(year( vjjvmm8d), z4.)
|| put(month(vjjvmm8d), z2.);
vjjvmon6 = vjjvmm6c;
put vjjvmon6=;
%global vjjvmon6;
call symput('vjjvmon6', vjjvmon6);
/* End-Schritt3b: Vor-Monat minus 24 Monate ergibt */
/* 1. Tag im Vor-Monat im Vor-Vor-Jahr */
/* intnx(..) geht nur mit SAS-date-Variable */
vvjvmm8d = intnx( 'month', vormm8d, -24 );
/* Konvertierung vom SAS-date-Format ins char-Format */
vvjvmm8c = put(year( vvjvmm8d), z4.)
|| put(month(vvjvmm8d), z2.)
|| put(day( vvjvmm8d), z2.);
vvjvmon8 = vvjvmm8c;
put vvjvmon8=;
%global vvjvmon8;
call symput('vvjvmon8', vvjvmon8);
vvjvmm6c = put(year( vvjvmm8d), z4.)
|| put(month(vvjvmm8d), z2.);
vvjvmon6 = vvjvmm6c;
put vvjvmon6=;
%global vvjvmon6;
call symput('vvjvmon6', vvjvmon6);
/* End-Schritt4: Vor-Vor-Monat minus 12 Monate ergibt */
/* 1. Tag im Vor-Vor-Monat im Vor-Jahr */
/* intnx(..) geht nur mit SAS-date-Variable */
vjvvmm6d = intnx( 'month', vvormm6d, -12 );
/* Konvertierung vom SAS-date-Format ins char-Format */
vjvvmm6c = put(year( vjvvmm6d), z4.)
|| put(month(vjvvmm6d), z2.);
vjvvmon6 = vjvvmm6c;
put vjvvmon6=;
%global vjvvmon6;
call symput('vjvvmon6', vjvvmon6);
/* End-Schritt5: Akt-Tag minus 12 Monate ergibt */
/* 1. Tag im (akt.) Monat im Vor-Jahr */
/* intnx(..) geht nur mit SAS-date-Variable */
vjjamm8d = intnx( 'month', aktmm8d, -12 );
/* Konvertierung vom SAS-date-Format ins char-Format */
vjjamm8c = put(year( vjjamm8d), z4.)
|| put(month(vjjamm8d), z2.)
|| put(day( vjjamm8d), z2.);
vjjamon8 = vjjamm8c;
put vjjamon8=;
%global vjjamon8;
call symput('vjjamon8', vjjamon8);
vjjamon6 = put(year( vjjamm8d), z4.)
|| put(month(vjjamm8d), z2.);
put vjjamon6=;
%global vjjamon6;
call symput('vjjamon6', vjjamon6);
/* End-Schritt6: ... minus 1Quartal ergibt das Vor-Quartal */
/* intnx(..) geht nur mit SAS-date-Variable */
vorqq8d = intnx( 'qtr', aktmm8d, -1 );
/* Konvertierung vom SAS-date-Format ins char-Format */
vorqtr6 = put(year( vorqq8d), z4.)
|| put(qtr( vorqq8d), z2.)
;
put vorqtr6=;
%global vorqtr6;
call symput('vorqtr6', vorqtr6);
/* End-Schritt6.1: Vor-Quartal minus 4 Quartale ergibt */
/* 1. Tag im Vor-Quartal im Vor-Jahr */
/* intnx(..) geht nur mit SAS-date-Variable */
vjjvqq8d = intnx( 'qtr', vorqq8d, -4 );
/* Konvertierung vom SAS-date-Format ins char-Format */
vjjvqq6c = put(year( vjjvqq8d), z4.)
|| put(qtr( vjjvqq8d), z2.)
;
vjjvqtr6 = vjjvqq6c;
put vjjvqtr6=;
%global vjjvqtr6;
call symput('vjjvqtr6', vjjvqtr6);
/* End-Schritt7: Vor-Jahr */
/* intnx(..) geht nur mit SAS-date-Variable */
voryy8d = intnx( 'year', aktmm8d, -1 );
/* Konvertierung vom SAS-date-Format ins char-Format */
voryy6c = put(year( voryy8d), z4.)
|| put(month(voryy8d), z2.)
;
voryy6 = voryy6c;
put voryy6=;
%global voryy6;
call symput('VORYY6', voryy6);
voryy4 = put(year( voryy8d), z4.)
;
put voryy4=;
%global voryy4;
call symput('VORYY4', voryy4);
/* End-Schritt7.1: Vor-Vor-Jahr */
/* intnx(..) geht nur mit SAS-date-Variable */
vvoryy8d = intnx( 'year', aktmm8d, -2 );
/* Konvertierung vom SAS-date-Format ins char-Format */
vvoryy6c = put(year( vvoryy8d), z4.)
|| put(month(vvoryy8d), z2.)
;
vvoryy6 = vvoryy6c;
put vvoryy6=;
%global vvoryy6;
call symput('VVorYY6', vvoryy6);
vvoryy4 = put(year(vvoryy8d), z4.)
;
put vvoryy4=;
%global vvoryy4;
call symput('VVORYY4', vvoryy4);
/* End-Schritt8.1: Ende der Vorwoche */
/* (Wochen-Ende=Samstag [letzter Arbeitstag]) */
/* End-Schritt8.2: Anf. der Vorwoche */
/* (Wochen-Anf.=Montag [erster Arbeitstag]) */
/* intnx(..) geht nur mit SAS-date-Variable */
/* Anfang der Vorwoche (bei SAS: Wochen-Anfang=Sonntag) */
vorkwa_d = intnx( 'week', aktdatum, -1 );
/* Anfang der Vorwoche (Wochen-Anf.=Montag [erster Arb.Tag]) */
vorkwaXd = intnx( 'day', vorkwa_d, +1 );
/* Ende der Vorwoche: Wochen-Ende=Samstag [Sa=letzter ArbTag */
vorkwe_d = intnx( 'day', vorkwa_d, +6 );
vorkwa_c = put(year( vorkwaXd), z4.)
|| put(month(vorkwaXd), z2.)
|| put(day( vorkwaXd), z2.);
put vorkwa_c=;
%global vorkwa8;
call symput('vorkwa8', vorkwa_c);
vorkwe_c = put(year( vorkwe_d), z4.)
|| put(month(vorkwe_d), z2.)
|| put(day( vorkwe_d), z2.);
put vorkwe_c=;
%global vorkwe8;
call symput('vorkwe8', vorkwe_c);
/* Anfang der Vor-Vor-Vorwoche */
vvvkwe_d = intnx( 'day', vorkwa_d, -20 );
vvvkwe_c = put(year( vvvkwe_d), z4.)
|| put(month(vvvkwe_d), z2.)
|| put(day( vvvkwe_d), z2.);
put vvvkwe_c=;
%global v4kwa8;
call symput('v4kwa8', vvvkwe_c);
/* Ende der Vorwoche */
/* VORKWFR8 für VorWochen-Ende=Freitag [Fr=letzter Arbeitstag] */
vorkwfrd = intnx( 'day', vorkwa_d, +5 );
vorkwfrc = put(year( vorkwfrd), z4.)
|| put(month(vorkwfrd), z2.)
|| put(day( vorkwfrd), z2.);
put vorkwfrc=;
%global VORKWFR8;
call symput('VORKWFR8', vorkwfrc);
/* Ende der Vorwoche */
/* VORKWSA8 für VorWochen-Ende=Samstag [Sa=letzt. Arb.Tag */
vorkwsad = intnx( 'day', vorkwa_d, +6 );
vorkwsac = put(year( vorkwsad), z4.)
|| put(month(vorkwsad), z2.)
|| put(day( vorkwsad), z2.);
put vorkwsac=;
%global VORKWSA8;
call symput('VORKWSA8', vorkwsac);
/* Ende der Vorwoche */
/* VORKWSO8 für VorWochen-Ende=Sonntag [So=letzt. Arb.Tag */
vorkwsod = intnx( 'day', vorkwa_d, +7 );
vorkwsoc = put(year( vorkwsod), z4.)
|| put(month(vorkwsod), z2.)
|| put(day( vorkwsod), z2.);
put vorkwsoc=;
%global VORKWSO8;
call symput('VORKWSO8', vorkwsoc);
/* End-Schritt9: Akt-Tag minus 1 Tag ergibt den */
/* Vor-ArbeitsTag im "passenden" Monat */
/* intnx(..) geht nur mit SAS-date-Variable */
/* voratag8 als Vor-ARBEITS-Tag */
vordd8d = intnx( 'day', aktdatum, -1 );
if weekday(vordd8d) = 1 /* weekday = 1 == So, dann 2 Tg zurück */
then do;
vordd8d = intnx( 'day', vordd8d, -2 ); /* erg. Fr == Arb.Tag */
end;
if weekday(vordd8d) = 7 /* weekday = 7 == Sa, dann 1 Tg zurück */
then do;
vordd8d = intnx( 'day', vordd8d, -1 ); /* erg. Fr == Arb.Tag */
end;
voratag8 = put(year( vordd8d), z4.)
|| put(month(vordd8d), z2.)
|| put(day( vordd8d), z2.);
put voratag8=;
%global voratag8; /* Vor-ARBEITS-Tag */
call symput('voratag8', voratag8);
/* End-Schritt11: Vor-Vor-Vor-Jahr 20060102 */
/* intnx(..) geht nur mit SAS-date-Variable */
vvvyy8d = intnx( 'year', aktmm8d, -3 );
/* Konvertierung vom SAS-date-Format ins char-Format */
vvvyy6c = put(year( vvvyy8d), z4.)
|| put(month(vvvyy8d), z2.)
;
vvvyy6 = vvvyy6c;
put vvvyy6=;
%global vvvyy6;
call symput('VVVYY6', vvvyy6);
vvvyy4 = put(year(vvvyy8d), z4.)
;
put vvvyy4=;
%global vvvyy4;
call symput('VVVYY4', vvvyy4);
run;
%if &TestDatu. ne /* bei "Test": Ausgabe in Output-Fenster */
%then %do;
title2 "Doku/Muster der Zeit-Definitionen (Vor-Monat, etc) ";
title3 " ";
title4 "Durch den Macro 'zeiten' stehen folgende automatisch geladene";
title5 "Macro-Variablen mit Zeiten zur Verfügung ";
title7 "Im Beispiel gilt: ";
title8 " TestDatu= &TestDatu. (akt. Tag im Beispiel) ";
title9 " ";
data _null_;
file print; /* Ausgabe in Output-Fenster */
put "aktyy4 ist &aktyy4. " " " "akt. Jahr zu akt. Datum ";
put "vormon8 ist &VORMON8. " " " "Vor-Monat, im 'passenden Jahr', mit LETZTEM Tag im Monat ";
put "vormon6 ist &VORMON6. " " " "Vor-Monat, im 'passenden Jahr' ";
put "vvormon6 ist &VVORMON6." " " "Vor-Vor-Monat, im 'passenden Jahr' ";
put "vjjvmon8 ist &VJJVMON8." " " "Vor-Monat, im Vor-Jahr, mit 1. Tag im Monat ";
put "vjjvmon6 ist &VJJVMON6." " " "Vor-Monat, im Vor-Jahr ";
put "vvjvmon6 ist &VVJVMON6." " " "Vor-Monat, im Vor-Vor-Jahr ";
put "vjvvmon6 ist &VJVVMON6." " " "Vor-Vor-Monat, im Vor-Jahr ";
put "vjjamon8 ist &VJJAMON8." " " "Monat, im Vor-Jahr, mit 1. Tag im Monat ";
put "vjjamon6 ist &VJJAMON6." " " " Monat, im Vor-Jahr ";
put " " "(AnwendungsBsp: von &VJJAMON6. bis &VORMON6. sind genau 12 Monate) ";
put "vorqtr6 ist &VORQTR6. " " " "Vor-Quartal, im 'passenden Jahr' ";
put "vjjvqtr6 ist &VJJVQTR6." " " "Vor-Quartal, im Vor-Jahr ";
put "voryy6 ist &voryy6. " " " "Vor-Jahr, mit 1. Monat im Jahr ";
put "voryy4 ist &voryy4. " " " " Vor-Jahr ";
put "VORKWa8 ist &VORKWa8. " " " "Vor-Woche, erster Arbeits-Tag==Anfang der Vorwoche ";
put " " "(wenn Wochen-Anf.=Montag [erster Arbeitstag]) ";
put "VORKWe8 ist &VORKWe8. " " " "Vor-Woche, letzter Arbeits-Tag==Ende der Vorwoche ";
put " " "(wenn Wochen-Ende=Samstag [Sa=letzter Arbeitstag])";
put "VORKWFR8 ist &VORKWFR8." " " " Vor-Woche, letzter Arbeits-Tag==Ende der Vorwoche ";
put " " "(wenn Wochen-Ende=Freitag [Fr=letzter Arbeitstag]) ";
put "VORKWSA8 ist &VORKWSA8." " " " Vor-Woche, letzter Arbeits-Tag==Ende der Vorwoche ";
put " " "(wenn Wochen-Ende=Samstag [Sa=letzter Arbeitstag])";
put "VORKWSO8 ist &VORKWSO8." " " " Vor-Woche, letzter Arbeits-Tag==Ende der Vorwoche ";
put " " "(wenn Wochen-Ende=Sonntag [So=letzter Arbeitstag])";
put "vvoryy4 ist &vvoryy4. " " " " Vor-Vor-Jahr ";
put "vvoryy6 ist &vvoryy6. " " " " Vor-Vor-Jahr, mit 1. Monat im Jahr ";
run;
%end;
%mend zeiten;
- Anmelden oder Registrieren um Kommentare zu schreiben
