λ¬Έμ μ λν μ€λͺ
λ° μ¬ν λ¨κ³:
λ μ§(μ [2018, 11, 29]
)λ₯Ό λ§λ€κ³ week
ν¨μλ₯Ό μννλ©΄ κ²°κ³Όλ 52
μ΄μ§λ§ [2018, 11, 30]
λ° 31
λν 1
λ°νν©λλ€. μμ κ²°κ³Όλ 52
μ
λλ€.
μμ
const a = moment([2018, 11, 29]);
console.log('a', a.year(), a.week());
//a 2018 52
const b = moment([2018, 11, 30]);
console.log('b', b.year(), b.week());
//b 2018 1
νκ²½:
Safari 11.1.2 on OSX
λμμ΄ λ μ μλ κΈ°ν μ 보:
"Thu Jul 19 2018 16:52:11 GMT+0200 (CEST)"
"7/19/2018, 4:52:11 PM"
-120
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.2 Safari/605.1.15"
"2.14.1"
μ°λ¦¬λ κ°μ λ¬Έμ μ μ§λ©΄ν©λλ€.
console.log(moment("2018-w15", "YYYY-[w]WW").add(38, "weeks").format("YYYY-[w]WW"))
2018-w01
@numen31337 μλ§λ year()
λμ μ weekYear() λ₯Ό μ¬μ©νκ³ μΆμ κ²μ
λλ€.
@Blapi WW
λ ISO μ£Όμ΄λ―λ‘ μμμ μ§μ ν λ YYYY
λμ GGGG
λ₯Ό μ¬μ©ν΄μΌ ν κ°λ₯μ±μ΄ ν½λλ€( GGGG
λ ISO "μ£Ό μ°λ"μ
λλ€. )
λλ μ΄κ²μ μ‘°κΈ λͺ νν ν κ²μ λλ€. μ¬κΈ°μ λ μ§ λ° κ΄λ ¨ μΆλ ₯μ΄ μλ μ½λκ° μμ΅λλ€.
const a = moment([2018, 11, 29]);
console.log(
`a year: ${a.year()}`, //a year: 2018
`a month: ${a.month()}`, //a month: 11
`a date: ${a.date()}`, //a date: 29
`a week: ${a.week()}`, //a week: 52
`a weekYear: ${a.weekYear()}`, //a weekYear: 2018
);
const b = moment([2018, 11, 30]);
console.log(
`b year: ${b.year()}`, //b year: 2018
`b month: ${b.month()}`, //b month: 11
`b date: ${b.date()}`, //b date: 30
`b week: ${b.week()}`, //b week: 1 <=== Why 1?
`b weekYear: ${b.weekYear()}`, //b weekYear: 2019 <=== Why 2019?
);
λμκ² λ¬Έμ κ° μλ€λ κ²μ
λλ€ week
μ λν΄ 2018, 11, 30
λ₯Ό λ°ν 1
λμ 52
. λ΄κ° μ΄ λΌμ΄λΈλ¬λ¦¬μ μΌλΆ κ°λ
μ μλͺ» μ΄ν΄ν κ²μ μλκΉ? μ₯κΈ°μ μΌλ‘ λ΄ μμ
μ λ λ μ§ μ¬μ΄μ λ¬λ ₯ μ£Ό μλ₯Ό κ³μ°νλ κ²μ΄μμΌλ©° λ€μ ν΄κ²° λ°©λ²μ μ¬μ©νμ¬ μ΄ μμ
μ μννμ΅λλ€.
const fromDateStartWeek = fromDate.startOf('week');
const toDateStartWeek = toDate.startOf('week');
return toDateStartWeek.diff(fromDateStartWeek, 'weeks');
κ·Έλ¬λ λλ μ¬μ ν μ΄ week
κΈ°λ₯μ λν΄ κ³ λ―Όνκ³ μμ΅λλ€. μ΄κ²μ λ²κ·Έμ
λκΉ μλλ©΄ μ κ° λμΉ κ²μ΄ μμ΅λκΉ? λλ λ€μ΄ν°λΈ κ°λ°μμ μμΌλ©° μλ° μ€ν¬λ¦½νΈμ μμ£Ό μ΅μν©λλ€. κ°μ¬ν©λλ€.
μ£Ό λ²νΈ λ§€κΈ°κΈ°κ° κΈ°μ‘΄ κ΄νκ³Ό μ΄λ»κ² λ€λ₯Έμ§ μμνκ³ κ³μ€ κ²μ λλ€.
μλ₯Ό λ€μ΄ 1μ 1μΌμ΄ νμ 1μ£ΌλΌκ³ μκ°νκ³ 12μ 31μΌμ νμ 52/53μ£Όμ μλ€κ³ μκ°ν©λλ€. κ·Έλ¦¬κ³ κ³΅μ νκΈ° μν΄ μΌλΆ λ²½ λ¬λ ₯μλ κ·Έλ° μμΌλ‘ μ£Ό λ²νΈκ° νμλ©λλ€.
μ£Ό λ²νΈλ₯Ό νμ€νν λ μ νΈνλ κ²μ μ£Όμ νμ 7μΌμ΄ ν¬ν¨λλλ‘ νλ κ²μ λλ€. ISO νμ€μ κ²½μ°: μ£Όλ μμμΌ-μΌμμΌμ μ€νλκ³ 1μ£Όμλ ν΄λΉ μ°λμ 첫 λ²μ§Έ λͺ©μμΌμ΄ ν¬ν¨λ©λλ€. μ΄λ 1μ£Όμ°¨μ μμμΌ-μμμΌμ΄ μ λ λμ _ν μ μμμ μλ―Έν©λλ€. (μ΄κ²μ 2019/2020μ μΌμ΄λ κ²μ λλ€: 2019λ 12μ 29μΌ-31μΌμ 2020λ 1μ£Όμ μΌλΆλ‘ κ°μ£Όλ©λλ€)
ISO λ°©λ²( isoWeek()
/ isoWeekYear()
)μ μ¬μ©νμ§ μμΌλ―λ‘ μΌμμΌλΆν° ν μμΌκΉμ§ μ€νλλ λ‘μΌμΌμ μ μμ μμ‘΄νκ³ μμ΅λλ€.
2018λ 12μ 30μΌμ μΌμμΌμ΄λ©° ν΄λΉ μ§μμμλ ν μ£Όμ 첫 λ²μ§Έ μμΌμ λλ€. ν΄λΉ μ£Όμ 2μΌλ§ 2018λ μ ν΄λΉνκ³ λλ¨Έμ§λ 2019λ μ ν΄λΉν©λλ€. ν΄λΉ μ£Ό(7μΌ λͺ¨λ)λ₯Ό 2018μ£Ό 53 λλ 2019μ£Ό 1λ‘ λΆλ₯ν μ§ μ¬λΆλ₯Ό κ²°μ νλ λ° λ‘μΊμ κ·μΉμ΄ μ¬μ©λ©λλ€. , 2019λ 1μ£Όμ°¨λΌκ³ ν©λλ€.
λͺ
ννκ² ν΄ μ£Όμ
μ κ°μ¬ν©λλ€. μ μκ²λ μ λ§ λλΌμ΄ μΌμ
λλ€. Apple Calendar dateComponents(_:from:to:) μμμ κ°μ APIκ° μ λ§ κ·Έλ¦¬μμ. μ κ²½μ°μλ Calendar.current.dateComponents([.weekOfYear], from: sinceDay, to: targetDay)
νΉμ κ΅¬μ± μμμμ diffλ₯Ό μμ²ν μ μκ³ ν΄λΉ μ°λμ μ€μ μ£Όμ diffλ₯Ό λ°μ μ μμ΅λλ€. days / 7
λΏλ§μ΄ μλλλ€.
κ°μ₯ μ μ©ν λκΈ
μ£Ό λ²νΈ λ§€κΈ°κΈ°κ° κΈ°μ‘΄ κ΄νκ³Ό μ΄λ»κ² λ€λ₯Έμ§ μμνκ³ κ³μ€ κ²μ λλ€.
μλ₯Ό λ€μ΄ 1μ 1μΌμ΄ νμ 1μ£ΌλΌκ³ μκ°νκ³ 12μ 31μΌμ νμ 52/53μ£Όμ μλ€κ³ μκ°ν©λλ€. κ·Έλ¦¬κ³ κ³΅μ νκΈ° μν΄ μΌλΆ λ²½ λ¬λ ₯μλ κ·Έλ° μμΌλ‘ μ£Ό λ²νΈκ° νμλ©λλ€.
μ£Ό λ²νΈλ₯Ό νμ€νν λ μ νΈνλ κ²μ μ£Όμ νμ 7μΌμ΄ ν¬ν¨λλλ‘ νλ κ²μ λλ€. ISO νμ€μ κ²½μ°: μ£Όλ μμμΌ-μΌμμΌμ μ€νλκ³ 1μ£Όμλ ν΄λΉ μ°λμ 첫 λ²μ§Έ λͺ©μμΌμ΄ ν¬ν¨λ©λλ€. μ΄λ 1μ£Όμ°¨μ μμμΌ-μμμΌμ΄ μ λ λμ _ν μ μμμ μλ―Έν©λλ€. (μ΄κ²μ 2019/2020μ μΌμ΄λ κ²μ λλ€: 2019λ 12μ 29μΌ-31μΌμ 2020λ 1μ£Όμ μΌλΆλ‘ κ°μ£Όλ©λλ€)
ISO λ°©λ²(
isoWeek()
/isoWeekYear()
)μ μ¬μ©νμ§ μμΌλ―λ‘ μΌμμΌλΆν° ν μμΌκΉμ§ μ€νλλ λ‘μΌμΌμ μ μμ μμ‘΄νκ³ μμ΅λλ€.2018λ 12μ 30μΌμ μΌμμΌμ΄λ©° ν΄λΉ μ§μμμλ ν μ£Όμ 첫 λ²μ§Έ μμΌμ λλ€. ν΄λΉ μ£Όμ 2μΌλ§ 2018λ μ ν΄λΉνκ³ λλ¨Έμ§λ 2019λ μ ν΄λΉν©λλ€. ν΄λΉ μ£Ό(7μΌ λͺ¨λ)λ₯Ό 2018μ£Ό 53 λλ 2019μ£Ό 1λ‘ λΆλ₯ν μ§ μ¬λΆλ₯Ό κ²°μ νλ λ° λ‘μΊμ κ·μΉμ΄ μ¬μ©λ©λλ€. , 2019λ 1μ£Όμ°¨λΌκ³ ν©λλ€.