Macros (fáciles) de SAS. Días de un mes en una fecha

29 May

Macro de SAS fácil y rápida que nos permite saber el número de días que tiene el mes de una fecha de SAS. La tenía para la automatización de un código que con una media y daba guerra cuando se trataba de un año bisiesto. 3 líneas de código:

%macro dias(fec);((&fec-day(&fec)+1)+31-day((&fec-day(&fec)+1)+31))-(&fec-day(&fec))
%mend;

El razonamiento es sencillo. Se trata de poner a día 1 la fecha que le pasamos, irnos un mes después y hacer la diferencia. Por supuesto copiáis y pegáis el ejemplo en el editor:

data uno;
y="03FEB02"d; x=%dias(y); put x=;
y="01FEB04"d; x=%dias(y); put x=;
y="14MAR05"d; x=%dias(y); put x=;
y="10APR11"d; x=%dias(y); put x=;
run;

Creo que puede ser de utilidad y también tiene algún otro aspecto interesante sobre macros y la falta de algún signo de puntuación. Saludos.

2 respuestas a «Macros (fáciles) de SAS. Días de un mes en una fecha»

  1. Está muy bien la solución que ofreces. Otra solución menos compleja podría ser:

    %macro dias(fec);
    day(intnx(‘month’,&fec,0,»E»))
    %mend;

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *