Moment: νŠΉμ • dow / doy 콀보에 λŒ€ν•œ 잘λͺ»λœ`weekOfYear`

에 λ§Œλ“  2014λ…„ 12μ›” 21일  Β·  13μ½”λ©˜νŠΈ  Β·  좜처: moment/moment

νŠΉμ • dow / doy 쑰합을 잘λͺ» μ²˜λ¦¬ν•˜λŠ” κ²ƒμ²˜λŸΌ λ³΄μ΄λ―€λ‘œ μ£Ό 계산 μ•Œκ³ λ¦¬μ¦˜μ΄ μΆ©λΆ„νžˆ μΌλ°˜μ μ΄μ§€ μ•Šμ€ κ²ƒμœΌλ‘œ λ³΄μž…λ‹ˆλ‹€.

// see http://en.wikipedia.org/wiki/Seven-day_week#cite_ref-15
moment.locale(moment.locale(), { week: { dow: 6, doy: 1 } });
moment("2012-12-28", "YYYY-MM-DD").week(); // 51 -- should be 52?
moment("2012-12-29", "YYYY-MM-DD").week(); // 52 -- should be 1
moment("2013-01-01", "YYYY-MM-DD").week(); // 52 -- should be 1
moment("2013-01-08", "YYYY-MM-DD").week(); // 53 -- should be 2
moment("2013-01-11", "YYYY-MM-DD").week(); // 53 -- should be 2
moment("2013-01-12", "YYYY-MM-DD").week(); // 1 -- should be 3
moment().weeksInYear(2012); // 52

λ‚΄κ°€ λ­”κ°€ 잘λͺ»ν•˜μ§€ μ•ŠλŠ” ν•œ weekOfYear ν•¨μˆ˜μ—μ„œ λ­”κ°€ 잘λͺ»λ˜μ—ˆλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

κ·Έ 이유, doy μ •μ˜ 방법은 μ„€λͺ… ν•  수 μ—†μ§€λ§Œ 7 + dow - janX 둜 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ„œ janX λŠ” 주에 μ†ν•΄μ•Όν•˜λŠ” x 번째 1 μ›”μž…λ‹ˆλ‹€. 1 번.

λ”°λΌμ„œ 1 μ›” 1 일이 1 번 주에 μ†ν•΄μ•Όν•˜κ³  ν† μš”μΌμ΄μ£Όμ˜ 첫 번째 날이면 doy = 7 + 6 - 1 = 12 μž…λ‹ˆλ‹€. ISO의 경우 미ꡭ의 경우 doy = 7 + 1 - 4 = 4 이고 doy = 7 + 0 - 1 = 6 μž…λ‹ˆλ‹€.

λͺ¨λ“  13 λŒ“κΈ€

μ΄κ²¬μžˆλŠ” μ‚¬λžŒ? 이것은 μš”μΌμ΄ μΌμš”μΌμ΄λ‚˜ μ›”μš”μΌμ΄ μ•„λ‹Œ λ§Žμ€ λ‘œμΌ€μΌμ— 영ν–₯을 λ―ΈμΉ©λ‹ˆλ‹€. 버그가 ν™•μΈλ˜λ©΄ 더 λ‚˜μ€ weekOfYear 계산을 μœ„ν•΄ pull μš”μ²­μ„ μ œμΆœν•΄μ•Όν•©λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ ν˜„μž¬ μ•Œκ³ λ¦¬μ¦˜μ„ μˆ˜μ •ν•  κ³„νšμ΄ 이미 μžˆμŠ΅λ‹ˆκΉŒ?

λ‚˜λŠ” doy 섀정이 λ‚˜λ₯Ό 맀우 ν˜Όλž€μŠ€λŸ½κ²Œν•œλ‹€λŠ” 것을 μΈμ •ν•΄μ•Όν•©λ‹ˆλ‹€. { dow: 6, doy: 12 } λŠ” μ£Όκ°€ ν† μš”μΌμ— μ‹œμž‘ν•˜κ³  1 μ£Όκ°€ 1 μ›” 1 μΌμ΄μžˆλŠ” μ£Όμž„μ„ μ˜λ―Έν•©λ‹ˆλ‹€. λ‚΄κ°€ μ˜¬λ°”λ₯΄κ²Œ μ΄ν•΄ν•œλ‹€λ©΄ {dow:6, doy: 1} λŠ” 첫 주에 12 μ›” 26 일이 ν¬ν•¨λœλ‹€λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€.

pull μš”μ²­μ— { dow: 6, doy: 12 } ν…ŒμŠ€νŠΈλ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

{ dow: 6, doy: 1 } λ₯Ό) μ˜λ―Έν•©λ‹ˆκΉŒ? 7보닀 큰 doy 값은 μ‹€μ œ μ˜λ―Έκ°€μ—†λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€ .. μ˜€νƒ€ μ˜€λ‚˜μš”?

μ•„λ‹ˆμš”, {dow: 6, doy: 12} . doy λŠ” 1 μ›” 첫째 주에 ν•΄λ‹Ήν•˜λŠ” 날이 _ μ•„λ‹™λ‹ˆλ‹€ _. {dow: 6, doy: 12} λŠ” μ•„λžμ–΄ κ΅­κ°€μ˜ ν‘œμ€€μž…λ‹ˆλ‹€.μ£ΌλŠ” ν† μš”μΌμ— μ‹œμž‘ν•˜κ³  첫 λ²ˆμ§Έμ£ΌλŠ” 1 μ›” 1 일을 ν¬ν•¨ν•˜λŠ” μ£Όμž…λ‹ˆλ‹€.

λ²„κ·ΈλŠ” μ‹€μ œλ‘œ λ‚ μ§œλ‘œλΆ€ν„°μ˜μ£Όμ˜ κ³„μ‚°μ—μžˆλŠ” 것이 μ•„λ‹ˆλΌ 단지 λ‹€λ₯Έ λ°©ν–₯μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

μš°μ™€, κ·Έλ ‡λ‹€λ©΄ μ§€κΈˆκΉŒμ§€ doy μ˜€ν•΄ν•˜κ³  κ³„μ…¨κ΅°μš” ..

μ‹€μ œλ‘œ λ¬Έμ„œ 에 λ”°λ₯΄λ©΄ localeData.firstDayOfYear() λŠ” 0μ—μ„œ 15κΉŒμ§€μ˜ μ •μˆ˜λ₯Ό λ°˜ν™˜ ν•  수 μžˆμ§€λ§Œ λ‚˜μ—κ²ŒλŠ” λ„ˆλ¬΄ 이상해 λ³΄μž…λ‹ˆλ‹€.

이해λ₯Ό 돕기 μœ„ν•΄ 1이 μ•„λ‹Œ 12 인 이유λ₯Ό μ„€λͺ…ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ? 그리고 μ–΄λ–€ 것 doy 의 1 λ˜λŠ” 4 의미,이 κ²½μš°μ—λŠ”? μ—¬κΈ°μ„œ μˆ˜ν•™μ€ μ •ν™•νžˆ μ–΄λ–»κ²Œ μž‘λ™ν•©λ‹ˆκΉŒ? 잘 μ΄ν•΄ν•˜μ‹  것 κ°™λ„€μš” ..

doy κ°€ 무엇인지 더 λΆ„λͺ…ν•˜κ²Œ λ§Œλ“œλŠ” 쒋은 μ„€λͺ…을 μ°Ύμ•˜μ§€λ§Œ, 6보닀 클 μˆ˜μžˆλŠ” 방법은 아직 μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.

@icambron , μ°¨μž„ ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? ν˜„μž¬ λ¬Έμ„œλ³΄λ‹€ 더 μžμ„Ένžˆ μ„€λͺ…ν•˜λŠ” 링크가 μžˆμŠ΅λ‹ˆκΉŒ?

@usmonster μ˜€λžœλ§Œμ— 이걸 λ΄€λŠ”λ° λ¨Έλ¦Ώμ†μ—μ„œ ... 그래, λ‚˜λ„ λͺ¨λ₯΄κ² μ–΄. 더 도움을 λ“œλ¦΄ 수 μ—†μ–΄μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€. λ‚΄κ°€ 링크 μ„€λͺ…을 썼닀 λ•Œλ§ˆλ‹€ λ‚˜λŠ” μ•„λ§ˆ λ‹€μŒμ„ 이해할 수 μžˆλ„λ‘, λ‚œ κ·Έλƒ₯ 처리 μ£Ό λ™μ•ˆ μˆœκ°„μ˜ κ΅¬ν˜„μ˜ 무리λ₯Ό μž‘μ„±ν–ˆμ§€λ§Œ, κ·Έ μ„€λͺ…은 ν•¨κ»˜ ν”λ“€ν•˜μ§€ μ•ŠλŠ” 것 doy ν•˜λ―€λ‘œ, κ°’> 6 .. .

κ·Έ 이유, doy μ •μ˜ 방법은 μ„€λͺ… ν•  수 μ—†μ§€λ§Œ 7 + dow - janX 둜 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ„œ janX λŠ” 주에 μ†ν•΄μ•Όν•˜λŠ” x 번째 1 μ›”μž…λ‹ˆλ‹€. 1 번.

λ”°λΌμ„œ 1 μ›” 1 일이 1 번 주에 μ†ν•΄μ•Όν•˜κ³  ν† μš”μΌμ΄μ£Όμ˜ 첫 번째 날이면 doy = 7 + 6 - 1 = 12 μž…λ‹ˆλ‹€. ISO의 경우 미ꡭ의 경우 doy = 7 + 1 - 4 = 4 이고 doy = 7 + 0 - 1 = 6 μž…λ‹ˆλ‹€.

μ•„, 이런 μ‹μœΌλ‘œ _ κ΅¬ν˜„ _ν•˜λ©΄ κ΅¬ν˜„ 문제라고 μƒκ°ν•©λ‹ˆλ‹€. λ‚΄κ°€ λ³Έ λ‹€λ₯Έ μ •μ˜ (즉, ISO, μœ λ‹ˆ μ½”λ“œ TR35)λŠ” 이와 같은 μ£Ό 계산을 μ •μ˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. API의 주석은 이것이 무슨 일이 μΌμ–΄λ‚˜κ³  μžˆλŠ”μ§€ μ•”μ‹œμ‘°μ°¨ν•˜μ§€ μ•Šμ§€λ§Œ, μ§€κΈˆμ€ λ°”λ‘œμ΄ 논리λ₯Ό κ°€μ •ν•˜λŠ” ν…ŒμŠ€νŠΈκ°€ μž‘μ„±λ˜μ—ˆμŒμ„ μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ λ‹€μŒκ³Ό 같은 쀄이 ν‘œμ‹œλ©λ‹ˆλ‹€.

dow : 1, // Monday is the first day of the week.
doy : 7  // The week that contains Jan 1st is the first week of the year.

그리고 λ‹€λ₯Έ νŒŒμΌμ—μ„œ :

dow : 6, // Saturday is the first day of the week.
doy : 12  // The week that contains Jan 1st is the first week of the year.

λ”°λΌμ„œ κ΅¬ν˜„μ— λŒ€ν•œ 평가가 μ •ν™• ν•΄ λ³΄μž…λ‹ˆλ‹€. κ·Έλž˜λ„ ν…ŒμŠ€νŠΈκ°€ 깨진 κ΅¬ν˜„κ³Ό μΌμΉ˜ν•˜λ„λ‘ μž‘μ„±λœ κ²ƒμ²˜λŸΌ λŠκ»΄μ§‘λ‹ˆλ‹€.

직관적 인 μž‘μ—… (첫 주에 μžˆμ–΄μ•Όν•˜λŠ” " janX "λ₯Ό κ°€μ Έμ˜΄)을 μˆ˜ν–‰ν•˜λ„λ‘ κ΅¬ν˜„μ„ μˆ˜μ •ν•˜λŠ” 것이 더 κΉ”λ”ν•œ μž‘μ—…μ΄μ—ˆμ„ 것이기 λ•Œλ¬Έμ— 특히 싀망 μŠ€λŸ½μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ§€κΈˆ μˆ˜μ •ν•˜λ©΄λ©λ‹ˆλ‹€. ' t 이전 버전과 ν˜Έν™˜λ©λ‹ˆλ‹€. 으.

λŒ€μ•ˆμ€ doy λ₯Ό 지원 μ€‘λ‹¨ν•˜κ³  μ£Ό ꡬ성에 μƒˆ μ˜΅μ…˜ (예 : minDays λ˜λŠ” dom )을 λ„μž…ν•˜μ—¬ μ΅œμ†Œ "1 μ›” 일"(1- 7) κ·Έ ν•΄μ˜ 첫 번째 주에 μžˆμ–΄μ•Όν•©λ‹ˆλ‹€. μ‹€μˆ˜λ‘œ μ§€μ •λœ 경우 doy 보닀 μš°μ„ ν•©λ‹ˆλ‹€.

μ΄κ²¬μžˆλŠ” μ‚¬λžŒ?

λ‚΄κ°€ 말할 μˆ˜μžˆλŠ” ν•œ, iso 주에 λŒ€ν•΄ μ½”λ“œλ₯Ό μ„€μ •ν–ˆμŒμ„ μ•Œ μˆ˜μžˆλŠ” ν•œ, μš°λ¦¬λŠ” 사싀을 λ‚¨μš©ν•˜κ³  μˆ«μžκ°€ μ œλŒ€λ‘œ μž‘λ™ν•˜λŠ”μ§€ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

의미λ₯Ό μ‚¬μš©μžμ—κ²Œ 더 μ˜λ―ΈμžˆλŠ” κ²ƒμœΌλ‘œ λ³€κ²½ν•˜λ©΄ 더 쒋을 수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이전 버전과 ν˜Έν™˜λ˜μ–΄μ•Όν•©λ‹ˆλ‹€ (λ”°λΌμ„œ μƒˆλ‘œμš΄ λ©”μ„œλ“œλŠ” μƒˆλ‘œμš΄ 숫자λ₯Ό λ…ΈμΆœν•©λ‹ˆλ‹€).

예λ₯Ό λ“€μ–΄ doy에 7을 λͺ‡ 번 λ”ν•˜λ©΄ dow에 μƒλŒ€μ μ΄κΈ° λ•Œλ¬Έμ— μž‘λ™ν•˜λ„λ‘ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

# 2336에 μ°¬μ„±ν•˜μ—¬ 이것을 λ‹«μŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” @ichernev. :) 1 λ…„ ν›„ λ‹€μ‹œ λŒμ•„μ™€μ„œ, ꡬ문을 λ³€κ²½ν•˜μ§€ μ•Šκ³ λŠ” 이전 버전과 ν˜Έν™˜λ˜λŠ” μž‘μ—…μ„ μˆ˜ν–‰ ν•  수 μ—†λ‹€κ³  ν™•μ‹ ν•˜μ§€λ§Œ 더 μ˜λ―ΈμžˆλŠ” 의미λ₯Ό κ΅¬ν˜„ν•˜λŠ” 것을 μ„ ν˜Έν•©λ‹ˆλ‹€.

doy에 7을 λͺ‡ 번 λ”ν•˜λ©΄ dow에 μƒλŒ€μ μ΄κΈ° λ•Œλ¬Έμ— μž‘λ™ν•˜λ„λ‘ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 이것이 항상 사싀이라고 ν™•μ‹ ν•˜μ§€ μ•ŠλŠ”λ‹€. 예λ₯Ό λ“€μ–΄, { dow: 0, doy: 6 } λŠ” μ œμ•ˆ 된 의미 λ³€κ²½ 전후에 같은 것을 μ˜λ―Έν•˜μ§€ μ•ŠλŠ”λ‹€. (이것이 λ‚΄κ°€ λ‹€λ₯Έ 이름을 μœ„ν•΄ doy λ₯Ό 더 이상 μ‚¬μš©ν•˜μ§€ μ•Šλ„λ‘ μ œμ•ˆν•œ μ΄μœ μž…λ‹ˆλ‹€.)

이에 λŒ€ν•œ μΆ”κ°€ ν”Όλ“œλ°±μ€ μ–΄λ””μ—μ„œ κ²€μƒ‰ν•΄μ•Όν•©λ‹ˆκΉŒ? 이 νŠΉμ • λ¬Έμ œλŠ” μ’…λ£Œλ˜μ—ˆμ§€λ§Œ λŒ€ν™”λ₯Ό moment / momentjs.com # 279둜 μ΄λ™ν•˜κ±°λ‚˜ 더 μ μ ˆν•œ 경우 μƒˆ 문제λ₯Ό μ—΄ β€‹β€‹μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ doy μž‘λ™ 방식을 νŒŒμ•…ν•˜κΈ° μœ„ν•΄ μΆ”κ°€λ‘œ ν•˜λ£¨λ₯Ό λ³΄λƒˆκ³ μ΄λ₯Ό μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ μˆœκ°„ μ†ŒμŠ€λ₯Ό λ‹€μš΄λ‘œλ“œν•΄μ•Όν–ˆκΈ° λ•Œλ¬Έμ—μ΄ 문제λ₯Ό ν•΄κ²°ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. @usmonsterκ°€ μ œμ•ˆν•œ κ²ƒμ²˜λŸΌ 의미 상 관련성이 더 높은 μƒˆ μ„€μ • λ³€μˆ˜λ₯Ό λ„μž…ν•˜λŠ”

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰