BookmarkSubscribeRSS Feed
jmic_nyk
Obsidian | Level 7

I often have problems with converting the result of the weekday function which gives you sunday as first day of week. However in our part of the world we use monday as first day of week. 

 

Here is a function that kan do just that - convert:

 

proc fcmp outlib = work.funktion.dk_ugedag;
function dk_ugedag(_sasdato);
return(weekday(_sasdato)-1+(weekday(_sasdato)=1)*7);
endsub;
run;

 

 

2 REPLIES 2
GertNissen
Barite | Level 11

Hej Jesper

 

Tak for dit indlæg og for at dele Tips & Tricks - Godt eksempel på anvendelse af PROC FCMP du der giver.

 

En anden mulighed er at benytte NLS funktionerne (National Language Support) til at både at returne korrekt ugedag (nr 3) med dansk tekst. 

 

Obs dato dk_ugedag
1 21369 onsdag

 

Test selv med denne kode

options locale=Danish_Denmark;

data ugedag;
  dato=today();
  dk_ugedag = NLDATE(dato,'%A');
run;

Link til NLDATE dokumentationen, hvor der også er diverse eksempler
http://go.documentation.sas.com/?cdcId=pgmmvacdc&cdcVersion=9.4&docsetId=nlsref&docsetTarget=n14463n...

 

Bemærk f.eks. forskellen mellem %u og %w

jmic_nyk
Obsidian | Level 7

Ja - hvorfor skulle jeg være den eneste med det problem. SAS har selvfølgelig allerede løst det. Og %u giver endda lige præcis det jeg har brug for.

 

Takker.

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

Discussion stats
  • 2 replies
  • 1027 views
  • 5 likes
  • 2 in conversation