I am unable to find the logic behind this.
How to find the begining and the end of the year when the week start on Saturday and end on Friday.
Does someone understand the logic of that.
/* Therefore, if the fist January 2025 is Weneday then the begining of the year will be Saturday 28, 2024 */
data demo;
format date weekdatx. sat_start_of_week sat_end_of_week sat_start_of_year sat_end_of_year year_beg_date year_end_date date9.;
do date='28dec2013'd to '02jan2026'd;
sat_start_of_week=intnx('week.7',date,0,'b');
sat_end_of_week=intnx('week.7',date,0,'e');
year_beg_date=intnx('year',intnx('week.7',date,0,'b'),0,'beg');
year_end_date=intnx('year',intnx('week.7',date,0,'b'),0,'end');
/* sat_start_of_year=intnx('year', sat_start_of_week, 0, 'b');*/
/* sat_end_of_year=intnx('year', sat_start_of_week, 0, 'e');*/
output;
end;
run;
proc print data=demo;
run;
/*create dataset*/
data original_data;
format year_start_date year_end_date date9.;
input year_start_date :date9. year_end_date :date9.;
datalines;
28Dec2013 02Jan2015
03Jan2015 01Jan2016
02Jan2016 30Dec2016
31Dec2016 29Dec2017
30Dec2017 28Dec2018
29Dec2018 27Dec2019
28Dec2019 01Jan2021
02Jan2021 31Dec2021
01Jan2022 30Dec2022
31Dec2022 29Dec2023
30Dec2023 27Dec2024
28Dec2024 02Jan2026
;
run;
/*view dataset*/
proc print data=original_data;
... View more