2014-12-08 4 views
0

나는 012/(download)을 말합니다. 매월 01 일, 02 일 및 03 일에 달려 있고, 그렇지 않은 이유는 해결할 수 없습니다. 일. 나는 JS에 대한 경험이 전혀 없지만 C#에 능숙하기 때문에 구문을 이해하기가 너무 어렵지 않습니다.정확한 날짜 접미사 표시

내가이 줄을 깨달았다는 범인입니다 :

document.getElementById("monthFC").innerHTML = monthFC + " " + dateFC + "TH"; 
이 코드 (나는 그것이 11, 12 및 13에 대한 잘못된입니다 알고 있어요),하지만 여전히 실패로 교체 시도

:

if (dateFC % 10 == 1) 
{ 
    document.getElementById("monthFC").innerHTML = monthFC + " " + dateFC + "ST"; 
} 
else if (dateFC % 10 == 2) 
{ 
    document.getElementById("monthFC").innerHTML = monthFC + " " + dateFC + "ND"; 
} 
else if (dateFC % 10 == 3) 
{ 
    document.getElementById("monthFC").innerHTML = monthFC + " " + dateFC + "RD"; 
} 
else 
{ 
    document.getElementById("monthFC").innerHTML = monthFC + " " + dateFC + "TH"; 
} 

내가 아는 한 구문은 정확하므로 내 모듈러스 연산자를 잘못 적용한다고 가정 할 수 있습니다 (C#에서는 숫자를 문자열로 저장하는 것이 실패 할 수 있다고 추측 할 수 있습니다. 하지만 여기에 해당되는지는 모르겠습니다.) 누군가가 올바른 방향으로 나를 가리킬 수 있다면 정말 고마워 할 것입니다! 미리 감사드립니다.

답변

1

// switch 문을 사용할 수있는 곳이 많지는 않지만 그 중 하나입니다.

function nth(n){ 
    if(n%1) return n; 
    var n1= n%100; 
    if(n1>3 && n1<21) return n+'th'; 
    switch(n1%10){ 
     case 1: return n+'st'; 
     case 2: return n+'nd'; 
     case 3: return n+'rd'; 
     default: return n+'th'; 
    } 
} 
var A= []; 
for(var i= 1; i<32; i++)A.push(nth(i)); 

A.join(', '); 

// 반환 값 :

1st, 2nd, 3rd, 4th, 5th, 6th, 7th, 8th, 9th, 10th, 11th, 12th, 13th, 
14th, 15th, 16th, 17th, 18th, 19th, 20th, 21st, 22nd, 23rd, 24th, 
25th, 26th, 27th, 28th, 29th, 30th, 31st 
+0

덕분에,이 정말 깔끔한 코드입니다! 나는 그것을 분류하고 (아래 사람에게 주석을 달았습니다), 대신 코드를 사용하여 지금 작업하게 될 것입니다. – tom982