[task] | two_turn [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | mLua에서 DateTime 객체를 서버와 클라이언트 간에 어떻게 주고받을 수 있으며, 기본 시간 기준은 무엇인가요? [answer] | mLua에서 `DateTime` 객체를 서버와 클라이언트 간에 주고받기 위해선 `DateElapsed` 값을 활용해야 합니다. `DateElapsed`는 `number` 타입이므로 서버에서 클라이언트로 메서드를 호출할 때 인자로 안전하게 전달할 수 있습니다. 기본 시간 기준은 **UTC**입니다. `DateTime` 객체는 기본적으로 UTC 기준으로 설정되므로, 클라이언트에서 로컬 시간으로 표시하려면 `_UtilLogic:GetLocalTimeFrom` 메서드를 사용해 변환해야 합니다. 서버에서 `DateElapsed`를 생성하 [followup] | `date.Elapsed` 값을 클라이언트로 전송받아 다시 `DateTime` 객체로 생성하는 구체적인 코드 예시를 보여주세요. [followup_answer] | `date.Elapsed` 값을 클라이언트로 전송받아 다시 `DateTime` 객체로 생성하는 구체적인 코드 예시는 다음과 같습니다. ```lua [server only] void OnBeginPlay() { wait(1) local date = DateTime(2022, 5, 17, 13, 21, 35) self:ServerToClient(date.Elapsed) } [client] void ServerToClient(number dateElapsed) { local date = DateTime(d [scores] | [judge_reason] | [source_doc] | DataTime을 DateElapsed를 사용해 다른 실행 공간에서 DateTime을 활용할 수 있습니다. ```lua [server only] void OnBeginPlay() { wait(1) local date = DateTime(2022, 5, 17, 13, 21, 35) self:ServerToClient(date.Elapsed) } [client] void ServerToClient(number dateElapsed) { local date = DateTime(dateElapsed)
[task] | single_turn [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | DateTime 객체의 일자를 한 자릿수로 출력하려면 %d를 사용해야 한다는데, d만 쓰면 어떤 문제가 발생하나요? [answer] | `d` 서식 지정자를 단독으로 사용할 경우, 표준 서식 문자열로 잘못 해석되는 문제가 발생합니다. 이를 방지하기 위해 `d`를 단독으로 사용할 때는 반드시 앞에 `%`를 붙여 `%d`로 작성해야 합니다. 이 규칙에 따라 `DateTime` 객체의 일자를 한 자릿수로 출력하는 올바른 코드는 다음과 같습니다. ```lua local date = DateTime(2022, 8, 9, 19, 27, 15) log(date:ToFormattedString("%d")) -- 9 ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "M" 또는 "m" 표준 서식 지정자는 특정 문화권의 월 서식 문자열을 나타냅니다. 문화권을 지정하지 않을 경우 서식 문자열은 **"MMMM dd"**입니다. ```lua local date = DateTime(2022, 4, 10) log(date:ToFormattedString("m")) -- April 10 log(date:ToFormattedString("m", "pt-BR")) -- 10 de abril ``` #### "Y", "y" "Y" 또는 "y" 표준 서식 지정자는 특정 문화권의 년 월 서식 문자열을 나타냅
[task] | single_turn [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | ToFormattedString 메서드에서 표준 서식 지정자와 사용자 지정 서식 문자열을 구분하는 기준이 공백 유무라고 하는데, 구체적으로 어떤 차이가 있나요? [answer] | `ToFormattedString` 메서드에서 표준 서식 지정자와 사용자 지정 서식 문자열을 구분하는 핵심 기준은 **서식 문자열의 길이**입니다. 1. **표준 날짜, 시간 서식 지정자**: - **단일 문자(1글자)**를 사용하는 경우입니다. - 예: `"d"`, `"D"`, `"f"`, `"F"`, `"t"`, `"T"`, `"O"`, `"R"`, `"s"` 등. - 이 경우 해당 문자가 나타내는 미리 정의된 패턴(예: `MM/dd/yyyy`)이 적용됩니다. 2. **사용자 지정 날짜, 시간 서식 문자열** [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 시간과 오전/오후(AM/PM) 지정자만 있고 날짜 구성 요소가 없는 문자열의 경우 날짜 구성 요소는 현재 날짜를, 시간(분, 초)은 00:00을 가정합니다. ```lua local dateAsString = "7 PM" local date = DateTime(dateAsString) log(date) -- 05/09/2022 19:00:00 ``` #### ISO 8601 문자열 표준 시간대 정보를 포함하고, ISO 8601을 준수하는 문자열을 사용하는 경우에 DateTime은 기본적으로 UTC로 저장됩니다. 그러므로 UTC
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | "M", "s", "t" 서식 지정자를 단독으로 사용할 때 필요한 문법을 3문장 이내로 설명하세요. [answer] | "M", "s", "t" 서식 지정자를 단독으로 사용할 때는 표준 서식 문자열로 잘못 해석되지 않도록 앞에 "%" 사용자 지정 서식 지정자를 붙여야 합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "mm" 사용자 지정 서식 지정자는 분을 00부터 59까지의 숫자로 나타냅니다. 분은 마지막 시간 이후 경과한 총 분 수를 나타냅니다. 분이 한 자릿수인 경우 십의 자리는 0으로 표시됩니다. ```lua local date = DateTime(2022, 8, 29, 19, 7, 15, 023) log(date:ToFormattedString("mm")) -- 07 ``` #### "M" "M" 사용자 지정 서식 지정자는 월을 1부터 12까지의 숫자로 나타냅니다. 월이 한 자릿수인 경우 십의 자리는 표시되지 않습니다. "M" 사용
[task] | code [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | `DateTime` 객체를 생성한 후 "d"와 "D" 표준 서식 지정자를 사용하여 간단한 날짜 패턴과 자세한 날짜 패턴의 문자열 표현을 각각 로그로 출력하는 스크립트를 작성해줘. [answer] | `DateTime` 객체를 생성한 후, `ToFormattedString` 메서드에 표준 서식 지정자 `"d"`와 `"D"`를 전달하여 각각 간단한 날짜 패턴과 자세한 날짜 패턴의 문자열 표현을 로그로 출력하는 스크립트는 다음과 같습니다. ```lua Property: [None] number Year = 2022 number Month = 4 number Day = 10 Method: [server only] void OnBeginPlay() { local date = DateTime(self.Year, self.Mon [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 시간과 오전/오후(AM/PM) 지정자만 있고 날짜 구성 요소가 없는 문자열의 경우 날짜 구성 요소는 현재 날짜를, 시간(분, 초)은 00:00을 가정합니다. ```lua local dateAsString = "7 PM" local date = DateTime(dateAsString) log(date) -- 05/09/2022 19:00:00 ``` #### ISO 8601 문자열 표준 시간대 정보를 포함하고, ISO 8601을 준수하는 문자열을 사용하는 경우에 DateTime은 기본적으로 UTC로 저장됩니다. 그러므로 UTC
[task] | two_turn [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | 서버에서 생성된 UTC 기준 DateTime을 클라이언트의 로컬 시간으로 변환하려면 어떤 절차와 API를 사용해야 하나요? [answer] | 서버에서 생성된 UTC 기준 `DateTime`을 클라이언트의 로컬 시간으로 변환하려면 다음과 같은 절차를 따릅니다. 1. **서버에서 Elapsed 값 전송**: 서버 공간(`[server only]`)에서 `DateTime` 객체를 생성한 후, 해당 객체의 `.Elapsed` 프로퍼티를 가져와 클라이언트 공간으로 전달합니다. `DateTime` 객체 자체는 실행 공간 간에 직접 전달할 수 없으므로, `Elapsed`라는 숫자 값으로 변환하여 보냅니다. 2. **클라이언트에서 DateTime 복원**: 클라이언트 공간(`[c [followup] | 실행 공간을 `[client]`로 이동시킨 후 `_UtilLogic:GetLocalTimeFrom` 메서드를 호출하여 로컬 시간으로 변환하는 전체 코드 예시를 작성해 주세요. [followup_answer] | 서버에서 생성된 `DateTime`의 `Elapsed` 값을 클라이언트로 전달한 뒤, 클라이언트 공간에서 `_UtilLogic:GetLocalTimeFrom` 메서드를 호출하여 로컬 시간으로 변환하는 전체 코드 예시는 다음과 같습니다. ```lua [server only] void OnBeginPlay() { wait(1) local date = DateTime(2022, 5, 17, 13, 21, 35) self:ServerToClient(date.Elapsed) } [client] void ServerT [scores] | [judge_reason] | [source_doc] | DataTime을 DateElapsed를 사용해 다른 실행 공간에서 DateTime을 활용할 수 있습니다. ```lua [server only] void OnBeginPlay() { wait(1) local date = DateTime(2022, 5, 17, 13, 21, 35) self:ServerToClient(date.Elapsed) } [client] void ServerToClient(number dateElapsed) { local date = DateTime(dateElapsed)
[task] | code [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | "G" 서식 지정자를 사용하여 간단한 날짜와 자세한 시간이 포함된 문자열을 생성하고, 문화권 미지정 및 "pt-BR" 지정 시의 출력 차이를 확인하는 스크립트를 작성해줘. [answer] | `"G"` 표준 서식 지정자는 공백으로 구분된 간단한 날짜(`"d"`)와 자세한 시간(`"T"`)이 조합된 문자열을 생성합니다. 문화권을 지정하지 않으면 기본 서식 문자열은 `"MM/dd/yyyy HH:mm:ss"`를 사용하며, `DateTime` 객체의 `ToFormattedString` 메서드를 호출하여 문자열을 얻을 수 있습니다. 문화권 매개변수를 `"pt-BR"`으로 지정하면 해당 문화권에 맞는 날짜 형식(`10/04/2022`)과 시간 형식이 적용되어 출력 결과가 달라집니다. ```lua local date = Date [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "D" 표준 서식 지정자는 특정 문화권의 자세한 날짜 서식 문자열을 나타냅니다. 문화권을 지정하지 않으면 서식 문자열은 **"dddd, dd MMMM yyyy"**을 사용합니다. ```lua local date = DateTime(2022, 4, 10) log(date:ToFormattedString("D")) -- Sunday, 10 April 2022 log(date:ToFormattedString("D", "pt-BR")) -- domingo, 10 de abril de 2022 ``` #### "f" "f" 표준 서식
[task] | two_turn [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | 표준 날짜/시간 서식 지정자에서 단일 문자와 공백이 포함된 두 문자 이상의 서식 문자열을 해석하는 규칙이 어떻게 다른지 궁금합니다 [answer] | 표준 날짜/시간 서식 문자열에서 문자 개수에 따라 해석 방식이 명확히 구분됩니다. 1. **단일 문자 (1글자)**: - 표준 날짜 및 시간 서식 지정자로 해석됩니다. - 예를 들어, `"d"`, `"D"`, `"t"`, `"T"` 등 알파벳 한 글자만 사용하는 경우, 해당 문자에 정의된 표준 패턴(예: 간단한 날짜, 자세한 시간 등)이 적용됩니다. - 문화권을 지정하지 않으면 기본 문화권(예: `"MM/dd/yyyy"`)을 따릅니다. 2. **공백 포함 두 문자 이상 (2글자 이상)**: - **사용자 지 [followup] | "08/18/2022 07:22:16 -5:00"과 같은 표준 날짜 및 시간 서식 문자열을 DateTime으로 변환할 때 오프셋 정보가 적용되어 결과값이 어떻게 변경되는지 코드 예시를 통해 보여주세요 [followup_answer] | 문서에 제시된 "08/18/2022 07:22:16 -5:00" 문자열을 `DateTime`으로 변환할 때, 포함된 표준 시간대 오프셋 정보(-5:00)가 적용되어 UTC 기준으로 저장됩니다. 오프셋이 `-5:00`인 경우, 원래 시간인 07:22:16에 5시간을 더한 12:22:16으로 변환됩니다. 이는 다음과 같은 코드 예시로 확인할 수 있습니다. ```lua local dateAsString = "08/18/2022 07:22:16 -5:00" local date = DateTime(dateAsString) log(dat [scores] | [judge_reason] | [source_doc] | 시간과 오전/오후(AM/PM) 지정자만 있고 날짜 구성 요소가 없는 문자열의 경우 날짜 구성 요소는 현재 날짜를, 시간(분, 초)은 00:00을 가정합니다. ```lua local dateAsString = "7 PM" local date = DateTime(dateAsString) log(date) -- 05/09/2022 19:00:00 ``` #### ISO 8601 문자열 표준 시간대 정보를 포함하고, ISO 8601을 준수하는 문자열을 사용하는 경우에 DateTime은 기본적으로 UTC로 저장됩니다. 그러므로 UTC
[task] | two_turn [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | DateTime 표준 서식 지정자("R", "s", "u", "U", "t", "T") 중 UTC 변환이 자동으로 이루어지지 않는 경우와 문화권 지정 시 출력 차이가 발생하는 예시를 설명해 주세요 [answer] | **UTC 변환이 자동으로 이루어지지 않는 경우** `DateTime:ToFormattedString` 메서드에서 특정 표준 서식 지정자를 사용할 때, 값이 UTC(협정 세계시)인지에 따라 결과가 달라지거나 의도와 다른 결과를 내놓을 수 있습니다. 아래 서식 지정자들은 입력된 `DateTime` 값 자체를 UTC로 변환하지 않으므로, 사용 전에 값이 이미 UTC인지 확인해야 합니다. 1. **"R" (또는 "r")**: IETF RFC 1123 사양을 기반으로 한 서식입니다. 결과 문자열은 항상 `GMT`로 표시되지만, 내부적 [followup] | "u" 지정자는 UTC 값을 수정하지 않으므로, Local 시간 기반의 DateTime 객체에 적용했을 때 발생할 수 있는 오류와 이를 방지하기 위한 전처리 코드 예시를 보여 주세요. [followup_answer] | `"u"` 표준 서식 지정자는 결과 문자열에 `Z`를 붙여 UTC 형식으로 보이게 하지만, 내부적으로 `DateTime` 객체의 값을 UTC로 변환하지 않습니다. 따라서 로컬 시간(Local) 기반의 `DateTime` 객체에 `"u"` 지정자를 적용하면, 실제 UTC 시각이 아닌 로컬 시각 값이 `Z`(UTC)로 표기되어 잘못된 시각 정보가 생성됩니다. 예를 들어, 로컬 시간이 UTC보다 9시간 앞선 지역(UTC+9)에서 2022년 4월 10일 00:00:00(Local)의 `DateTime` 객체를 생성하여 `"u"` 지정자로 [scores] | [judge_reason] | [source_doc] | #### "R", "r" "R" 또는 "r" 표준 서식 지정자는 IETF RFC 1123 사양을 기반으로 시간 값에 대한 사용자 지정 서식 문자열을 나타냅니다. (**"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'"**) 사용자 지정 서식 문자열에서 작은따옴표는 리터럴에 해당합니다. 작은따옴표는 하이픈, 콜론 및 개발 문자를 구분하는 용도로 사용합니다. 따라서 결과 문자열에 표시되지 않습니다. 시간은 IETF RFC 1123 표준에 따라 UTC로 표시되기 때문에 서식 지정자를 사용하기 전에 값이 UTC인지 확인해
[task] | single_turn [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | "O"와 "o" 표준 서식 지정자가 ISO 8601 형식을 준수하는 이유와 그 장점에 대해 설명해 주세요. [answer] | "O"와 "o" 표준 서식 지정자가 ISO 8601 형식을 준수하는 이유는 **왕복(Round-trip) 변환**을 보장하기 위해서입니다. ISO 8601은 국제 표준으로, 날짜와 시간을 명확하고 모호함 없이 표현하는 규칙을 정의합니다. mLua에서 "O"와 "o" 지정자는 `yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK`라는 특정 사용자 지정 서식 문자열을 사용하며, 이는 ISO 8601 규격을 따릅니다. ### 장점 1. **정확한 복구 가능**: 가장 큰 장점은 날짜 문자열을 다시 원래의 `Da [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "D" 표준 서식 지정자는 특정 문화권의 자세한 날짜 서식 문자열을 나타냅니다. 문화권을 지정하지 않으면 서식 문자열은 **"dddd, dd MMMM yyyy"**을 사용합니다. ```lua local date = DateTime(2022, 4, 10) log(date:ToFormattedString("D")) -- Sunday, 10 April 2022 log(date:ToFormattedString("D", "pt-BR")) -- domingo, 10 de abril de 2022 ``` #### "f" "f" 표준 서식
[task] | code [pass] | ⏳ 미판정 [title] | TimeSpan으로 시간 표현하기 [question] | 10분 30초 후 이벤트가 시작되었는지 확인하기 위해 `TimeSpan`을 생성하고, `OnUpdate`에서 매 프레임 경과 시간을 누적하여 10분 30초가 되면 `log`로 "이벤트 시작"을 출력하는 스크립트를 작성해줘 [answer] | 10분 30초 후 이벤트가 시작되었는지 확인하기 위해 `TimeSpan`을 생성하고, `OnUpdate`에서 매 프레임의 `delta`를 누적하여 비교하는 스크립트는 다음과 같습니다. 참고로 `TimeSpan` 생성 시 인자 순서는 `(days, hours, minutes, seconds, milliseconds)` 입니다. 10분 30초는 `TimeSpan(0, 0, 10, 30, 0)` 으로 표현할 수 있습니다. ```lua Property: [None] TimeSpan EventDuration = TimeSpan(0, 0, [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 일반 긴 서식 지정자 "G"는 항상 일 수와 소수 세 자릿수를 출력하고 문화권을 구분합니다. 형식은 [-]d':'hh':'mm':'ss.fff 입니다. | 기호 | 설명 | | --- | --- | | - | 음수를 나타내는 기호 | | . | 초 소수 구분을 나타냅니다. | | fff | 초의 소수 부분을 나타냅니다. | | ss | "00"부터 "59" 범위의 초를 나타냅니다.| | mm | "00"부터 "59" 범위의 분을 나타냅니다. | | hh | "00"부터 "23" 범위의 시간을 나타냅니다. | | d | 일 수를 나
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | "MMM"과 "MMMM" 지정자가 문화권 인자를 받을 때 출력되는 결과를 코드로만 출력하고 설명은 주석으로 작성하세요. [answer] | ```lua local date = DateTime(2022, 8, 29, 19, 7, 15, 023) -- "MMM" 지정자에 문화권 "it-IT"를 지정하면 해당 문화권에 맞는 월의 약식 이름이 출력됩니다. log(date:ToFormattedString("MMM", "it-IT")) -- ago -- "MMMM" 지정자에 문화권 "it-IT"를 지정하면 해당 문화권에 맞는 월의 전체 이름이 출력됩니다. log(date:ToFormattedString("MMMM", "it-IT")) -- agosto ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "mm" 사용자 지정 서식 지정자는 분을 00부터 59까지의 숫자로 나타냅니다. 분은 마지막 시간 이후 경과한 총 분 수를 나타냅니다. 분이 한 자릿수인 경우 십의 자리는 0으로 표시됩니다. ```lua local date = DateTime(2022, 8, 29, 19, 7, 15, 023) log(date:ToFormattedString("mm")) -- 07 ``` #### "M" "M" 사용자 지정 서식 지정자는 월을 1부터 12까지의 숫자로 나타냅니다. 월이 한 자릿수인 경우 십의 자리는 표시되지 않습니다. "M" 사용
[task] | single_turn [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | ISO 8601 형식의 문자열에 Z가 붙어 있으면 UTC로 저장되는데, 오프셋 값이 붙은 경우와 실제 저장되는 시간이 어떻게 달라지는지 궁금합니다. [answer] | ISO 8601 형식의 문자열에서 `Z`와 오프셋 값(`+` 또는 `-`로 시작하는 시간대 정보)이 붙어 있을 때 `DateTime`으로 저장되는 시간은 다음과 같이 달라집니다. **1. `Z`가 붙어 있는 경우 (UTC)** 문자열 끝에 `Z`가 붙어 있으면 해당 시간이 **UTC(협정 세계시)**임을 의미합니다. 이 경우 입력된 시간 값이 그대로 UTC 기준으로 저장됩니다. * **입력 예시:** `"2022-08-18T07:22:16.000Z"` * **저장 결과:** `08/18/2022 07:22:16` * [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 시간과 오전/오후(AM/PM) 지정자만 있고 날짜 구성 요소가 없는 문자열의 경우 날짜 구성 요소는 현재 날짜를, 시간(분, 초)은 00:00을 가정합니다. ```lua local dateAsString = "7 PM" local date = DateTime(dateAsString) log(date) -- 05/09/2022 19:00:00 ``` #### ISO 8601 문자열 표준 시간대 정보를 포함하고, ISO 8601을 준수하는 문자열을 사용하는 경우에 DateTime은 기본적으로 UTC로 저장됩니다. 그러므로 UTC
[task] | code [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | ISO 8601 형식의 문자열을 받아 `DateTime`으로 변환한 후 표준 시간대 오프셋이 포함된 경우와 UTC 기준으로 저장되는 경우를 구분하여 로그를 출력하는 스크립트를 작성해줘. [answer] | ISO 8601 형식의 문자열을 `DateTime`으로 변환할 때, 문자열의 끝이 `Z`로 끝나면 UTC 기준으로 유지되며, `-07:00`과 같은 오프셋 정보가 포함되면 해당 오프셋만큼 조정된 UTC 값으로 저장됩니다. 아래 스크립트는 이 두 가지 경우를 구분하여 로그를 출력합니다. ```lua Method: [server only] void OnBeginPlay() { -- 1. UTC 기준 저장되는 경우 (Z로 끝남) local utcDateString = "2022-08-18T07:22:16.000Z" [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 시간과 오전/오후(AM/PM) 지정자만 있고 날짜 구성 요소가 없는 문자열의 경우 날짜 구성 요소는 현재 날짜를, 시간(분, 초)은 00:00을 가정합니다. ```lua local dateAsString = "7 PM" local date = DateTime(dateAsString) log(date) -- 05/09/2022 19:00:00 ``` #### ISO 8601 문자열 표준 시간대 정보를 포함하고, ISO 8601을 준수하는 문자열을 사용하는 경우에 DateTime은 기본적으로 UTC로 저장됩니다. 그러므로 UTC
[task] | two_turn [pass] | ⏳ 미판정 [title] | TimeSpan으로 시간 표현하기 [question] | mLua에서 TimeSpan 객체의 값을 특정 형식의 문자열로 변환하려면 어떤 메서드와 서식 지정자를 사용해야 하는가? [answer] | mLua에서 `TimeSpan` 객체의 값을 특정 형식의 문자열로 변환하려면 `ToFormattedString` 메서드를 사용합니다. 이 메서드에는 원하는 출력 형식을 지정하는 서식 지정자를 인수로 전달합니다. 주요 서식 지정자는 다음과 같습니다. * **시간(hh)**: `"hh"`는 시간 수를 2자리로 출력합니다 (예: 03). * **분(m/mm)**: * `"m"`는 분 수를 출력합니다. 값이 0~9일 경우 1자리, 10~59일 경우 2자리로 출력됩니다. 단독으로 사용할 때는 표준 서식 지정자와 혼동되지 [followup] | `ToFormattedString` 메서드에서 `"m"`과 `"mm"`, `"s"`와 `"ss"` 서식 지정자의 출력 차이와, 단독 사용 시 표준 서식 지정자로 잘못 해석되지 않도록 `%` 기호를 붙여야 하는 구체적인 조건은 무엇인가? [followup_answer] | `ToFormattedString` 메서드에서 `"m"`과 `"mm"`, `"s"`와 `"ss"` 서식 지정자의 출력 차이와 `%` 기호 사용 조건은 다음과 같습니다. ### 1. `"m"`과 `"mm"`의 출력 차이 * **`"m"`**: 분 값을 출력합니다. 값이 0~9인 경우 **1자리** 문자열을 반환하고, 10~59인 경우 **2자리** 문자열을 반환합니다. * **`"mm"`**: 분 값을 출력합니다. 값이 0~9인 경우 출력 문자열 앞에 **0이 포함**되어 항상 **2자리** 문자열로 출력됩니다. **예시: [scores] | [judge_reason] | [source_doc] | "hh" 사용자 지정 서식 지정자는 시간 수를 나타내는 값을 출력합니다. 시간 값이 0-9라면 출력 문자열 앞에 0이 포함됩니다. 일반적으로 하나의 숫자만 포함하는 문자열은 일 수로 해석됩니다. "hh" 사용자 지정 서식 지정자를 대신 사용하여 숫자 문자열을 시간 수로 해석할 수 있습니다. ```lua local timeSpan = TimeSpan(365, 3, 14, 45) log(timeSpan:ToFormattedString("dd'.'hh':'mm':'ss")) -- 365.03:14:45 ``` #### "m" "
[task] | code [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | RFC 1123 형식의 GMT 포함 문자열과 표준 시간대 오프셋이 포함된 문자열을 각각 `DateTime`으로 변환하고 "R" 및 "O" 서식 지정자를 통해 포맷된 결과를 로그로 출력하는 스크립트를 작성해줘. [answer] | 참고 문서에 따르면, RFC 1123 형식의 GMT 포함 문자열과 표준 시간대 오프셋이 포함된 문자열을 `DateTime`으로 변환한 후, 각각 "R" 및 "O" 서식 지정자를 사용하여 포맷된 결과를 로그로 출력하는 스크립트는 다음과 같습니다. ```lua Property: [None] number TestFlag = 0 Method: [server only] void OnBeginPlay() { -- RFC 1123 형식 (GMT 포함) 문자열 변환 및 "R" 서식 지정자로 출력 local rfc1123Strin [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | 시간과 오전/오후(AM/PM) 지정자만 있고 날짜 구성 요소가 없는 문자열의 경우 날짜 구성 요소는 현재 날짜를, 시간(분, 초)은 00:00을 가정합니다. ```lua local dateAsString = "7 PM" local date = DateTime(dateAsString) log(date) -- 05/09/2022 19:00:00 ``` #### ISO 8601 문자열 표준 시간대 정보를 포함하고, ISO 8601을 준수하는 문자열을 사용하는 경우에 DateTime은 기본적으로 UTC로 저장됩니다. 그러므로 UTC
[task] | code [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | DateTime 객체를 생성하여 "yyyy/MM/dd HH:mm:ss" 형식으로 포맷된 문자열을 로그에 출력하는 스크립트를 작성해줘 [answer] | `DateTime` 객체를 생성하고 `ToFormattedString` 메서드에 `"yyyy/MM/dd HH:mm:ss"` 형식 문자열을 전달하여 포맷된 문자열을 로그로 출력하는 스크립트입니다. ```lua Method: [server only] void OnBeginPlay() { local date = DateTime(2022, 4, 10, 14, 30, 45) log(date:ToFormattedString("yyyy/MM/dd HH:mm:ss")) } ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "M" 또는 "m" 표준 서식 지정자는 특정 문화권의 월 서식 문자열을 나타냅니다. 문화권을 지정하지 않을 경우 서식 문자열은 **"MMMM dd"**입니다. ```lua local date = DateTime(2022, 4, 10) log(date:ToFormattedString("m")) -- April 10 log(date:ToFormattedString("m", "pt-BR")) -- 10 de abril ``` #### "Y", "y" "Y" 또는 "y" 표준 서식 지정자는 특정 문화권의 년 월 서식 문자열을 나타냅
[task] | code [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | DateTime 객체의 ToFormattedString 메서드를 이용해 "s" 서식 지정자로 ISO 8601 형식의 정렬 가능한 날짜 문자열을 생성하고 log로 출력하는 스크립트를 작성해줘 [answer] | DateTime 객체의 `ToFormattedString` 메서드에 `"s"` 서식 지정자를 전달하면 `"yyyy'-'MM'-'dd'T'HH':'mm':'ss"` 패턴에 해당하는 ISO 8601 형식의 정렬 가능한 문자열이 생성됩니다. 요청하신 로직을 구현한 스크립트는 다음과 같습니다. ```lua Method: [server only] void OnBeginPlay() { local date = DateTime(2022, 4, 10) log(date:ToFormattedString("s")) } ``` 실행 시 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | #### "R", "r" "R" 또는 "r" 표준 서식 지정자는 IETF RFC 1123 사양을 기반으로 시간 값에 대한 사용자 지정 서식 문자열을 나타냅니다. (**"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'"**) 사용자 지정 서식 문자열에서 작은따옴표는 리터럴에 해당합니다. 작은따옴표는 하이픈, 콜론 및 개발 문자를 구분하는 용도로 사용합니다. 따라서 결과 문자열에 표시되지 않습니다. 시간은 IETF RFC 1123 표준에 따라 UTC로 표시되기 때문에 서식 지정자를 사용하기 전에 값이 UTC인지 확인해
[task] | code [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | "o" 서식으로 ISO 8601 형식 문자열을 생성한 뒤, 해당 문자열을 인수로 받아 다시 DateTime 객체로 복원하는 로직을 구현하는 스크립트를 작성해줘. [answer] | 참고 문서에 따르면, `"o"` 표준 서식 지정자는 ISO 8601을 준수하는 왕복(서클-트립) 날짜/시간 문자열을 생성합니다. 이 형식은 `DateTime` 객체에서 문자열로 변환하고, 그 문자열을 다시 `DateTime` 객체로 복원할 수 있는 역설계 가능한 형식입니다. 요구하신 로직을 구현한 mLua 스크립트는 다음과 같습니다. ```lua Property: [None] string isoDateString = "" Method: [server only] void OnBeginPlay() { -- 1. DateTi [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "D" 표준 서식 지정자는 특정 문화권의 자세한 날짜 서식 문자열을 나타냅니다. 문화권을 지정하지 않으면 서식 문자열은 **"dddd, dd MMMM yyyy"**을 사용합니다. ```lua local date = DateTime(2022, 4, 10) log(date:ToFormattedString("D")) -- Sunday, 10 April 2022 log(date:ToFormattedString("D", "pt-BR")) -- domingo, 10 de abril de 2022 ``` #### "f" "f" 표준 서식
[task] | single_turn [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | ToFormattedString 메서드에 사용자 지정 서식 문자열을 전달할 때, 시간 구분 기호 :와 날짜 구분 기호 /를 직접 입력해도 되는 건가요? [answer] | 네, 시간 구분 기호 `:`와 날짜 구분 기호 `/`는 사용자 지정 서식 문자열에서 직접 입력할 수 있습니다. 문서에 따르면 이 두 기호는 사용자 지정 날짜 및 시간 서식 지정자 목록에 포함되어 있으며, 각각 **시간 구분 기호**와 **날짜 구분 기호** 역할을 합니다. 따라서 `DateTime` 객체의 `ToFormattedString` 메서드에서 이 기호들을 포함한 문자열을 전달하여 원하는 형태의 날짜 및 시간 문자열을 생성할 수 있습니다. 예를 들어, `HH:mm:ss`와 같은 형식으로 시간을 표현하거나 `yyyy/MM/ [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "M" 또는 "m" 표준 서식 지정자는 특정 문화권의 월 서식 문자열을 나타냅니다. 문화권을 지정하지 않을 경우 서식 문자열은 **"MMMM dd"**입니다. ```lua local date = DateTime(2022, 4, 10) log(date:ToFormattedString("m")) -- April 10 log(date:ToFormattedString("m", "pt-BR")) -- 10 de abril ``` #### "Y", "y" "Y" 또는 "y" 표준 서식 지정자는 특정 문화권의 년 월 서식 문자열을 나타냅
[task] | code [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | DateTime 객체의 ToFormattedString 메서드를 이용해 "t" 및 "T" 서식 지정자를 활용하여 문화권 인자를 지정하지 않은 기본 시간 형식과 "en-US" 문화권 지정 시간 형식을 각각 log로 출력하는 스크립트를 작성해줘 [answer] | 요청하신 `DateTime` 객체의 `ToFormattedString` 메서드를 사용하여 "t"와 "T" 서식 지정자를 각각 기본 문화권과 "en-US" 문화권으로 적용한 스크립트는 다음과 같습니다. ```lua local date = DateTime(2022, 4, 10) -- "t" 서식 지정자: 기본 문화권 (HH:mm) log(date:ToFormattedString("t")) -- "t" 서식 지정자: en-US 문화권 log(date:ToFormattedString("t", "en-US")) -- "T" 서식 [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | #### "R", "r" "R" 또는 "r" 표준 서식 지정자는 IETF RFC 1123 사양을 기반으로 시간 값에 대한 사용자 지정 서식 문자열을 나타냅니다. (**"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'"**) 사용자 지정 서식 문자열에서 작은따옴표는 리터럴에 해당합니다. 작은따옴표는 하이픈, 콜론 및 개발 문자를 구분하는 용도로 사용합니다. 따라서 결과 문자열에 표시되지 않습니다. 시간은 IETF RFC 1123 표준에 따라 UTC로 표시되기 때문에 서식 지정자를 사용하기 전에 값이 UTC인지 확인해
[task] | code [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | DateTime 객체를 생성하여 "%d" 사용자 지정 서식 지정자를 이용해 일을 한 자리 숫자로만 포맷하여 로그에 출력하는 스크립트를 작성해줘 [answer] | DateTime 객체를 생성하고 `%d` 서식 지정자를 사용하여 일을 한 자리 숫자로 포맷하는 예제입니다. ```lua local date = DateTime(2022, 8, 9, 19, 27, 15) log(date:ToFormattedString("%d")) -- 9 ``` 참고: `d` 서식 지정자는 일을 1부터 31까지의 숫자로 나타내며, 한 자릿수인 경우 십의 자리를 생략합니다. 단독으로 `d`를 사용할 경우 표준 서식 문자열로 잘못 해석될 수 있으므로 앞에 `%`를 붙여 `%d` 형태로 사용해야 합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "M" 또는 "m" 표준 서식 지정자는 특정 문화권의 월 서식 문자열을 나타냅니다. 문화권을 지정하지 않을 경우 서식 문자열은 **"MMMM dd"**입니다. ```lua local date = DateTime(2022, 4, 10) log(date:ToFormattedString("m")) -- April 10 log(date:ToFormattedString("m", "pt-BR")) -- 10 de abril ``` #### "Y", "y" "Y" 또는 "y" 표준 서식 지정자는 특정 문화권의 년 월 서식 문자열을 나타냅
[task] | code [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | DateTime 객체의 ToFormattedString 메서드를 이용해 "u" 서식 지정자로 UTC 기반의 일관된 형식 날짜 문자열을 생성하고 log로 출력하는 스크립트를 작성해줘 [answer] | `DateTime` 객체의 `ToFormattedString` 메서드에 `"u"` 표준 서식 지정자를 전달하면 `yyyy-MM-dd HH:mm:ssZ` 형태의 문자열을 반환합니다. 이 서식 지정자는 결과 문자열에 `Z`를 붙여 UTC임을 나타내지만, `DateTime` 객체 자체의 값은 수정하지 않습니다. 따라서 `DateTime` 객체가 이미 UTC 기준인 값인지 확인한 후 사용해야 합니다. 요구사항에 맞는 mLua 스크립트는 다음과 같습니다. ```lua Method: [server only] void OnBeginPlay( [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | #### "R", "r" "R" 또는 "r" 표준 서식 지정자는 IETF RFC 1123 사양을 기반으로 시간 값에 대한 사용자 지정 서식 문자열을 나타냅니다. (**"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'"**) 사용자 지정 서식 문자열에서 작은따옴표는 리터럴에 해당합니다. 작은따옴표는 하이픈, 콜론 및 개발 문자를 구분하는 용도로 사용합니다. 따라서 결과 문자열에 표시되지 않습니다. 시간은 IETF RFC 1123 표준에 따라 UTC로 표시되기 때문에 서식 지정자를 사용하기 전에 값이 UTC인지 확인해
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | "f"와 "F" 서식 지정자를 단독으로 사용할 때 표준 서식 문자열로 잘못 해석되지 않도록 해야 하는 조건을 단계별 번호 목록으로 2단계만 작성하세요. [answer] | 1. "f" 또는 "F" 서식 지정자를 단독으로 사용할 때, 표준 서식 문자열로 잘못 해석되지 않도록 방지하기 위해 해당 서식 문자열의 맨 앞에 "%" 사용자 지정 서식 지정자를 붙여야 합니다. 2. "%"를 붙여 "f"는 "%f"로, "F"는 "%F"로 서식 문자열을 구성하여 `ToFormattedString` 메서드에 전달합니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "dd" 사용자 지정 서식 지정자는 일을 01부터 31까지의 숫자로 나타냅니다. 일이 한 자릿수인 경우 십의 자리에는 0이 표시됩니다. ```lua local date = DateTime(2022, 8, 9, 19, 27, 15) log(date:ToFormattedString("dd")) -- 09 ``` #### "ddd" "ddd" 사용자 지정 서식 지정자는 요일의 약식 이름을 나타냅니다. 문화권을 지정하면, 문화권에 해당하는 약식 요일이 나타납니다. ```lua local date = DateTime(2022, 8,
[task] | code [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | DateTime 객체의 "Y" 표준 서식 지정자를 사용하여 년도와 월의 전체 이름을 포맷하여 로그에 출력하는 스크립트를 작성해줘 [answer] | `DateTime` 객체의 `"Y"` 표준 서식 지정자는 특정 문화권에서 사용하는 년도와 월의 전체 이름이 포함된 서식 문자열을 반환합니다. 문화권을 지정하지 않으면 기본 서식 문자열은 `"yyyy MMMM"` 입니다. 아래는 `DateTime` 객체를 생성하여 `"Y"` 표준 서식 지정자를 사용해 년도와 월의 전체 이름을 로그에 출력하는 스크립트입니다. ```lua Method: [server only] void OnBeginPlay() { local date = DateTime(2022, 4, 10) log(d [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "M" 또는 "m" 표준 서식 지정자는 특정 문화권의 월 서식 문자열을 나타냅니다. 문화권을 지정하지 않을 경우 서식 문자열은 **"MMMM dd"**입니다. ```lua local date = DateTime(2022, 4, 10) log(date:ToFormattedString("m")) -- April 10 log(date:ToFormattedString("m", "pt-BR")) -- 10 de abril ``` #### "Y", "y" "Y" 또는 "y" 표준 서식 지정자는 특정 문화권의 년 월 서식 문자열을 나타냅
[task] | instruction_following [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | "ddd"와 "dddd" 서식 지정자에서 문화권 매개변수를 생략하거나 "fr-FR"으로 지정했을 때의 출력값을 각각 2개의 코드 블록으로만 제시하세요. [answer] | ```lua local date = DateTime(2022, 8, 29, 19, 27, 15) log(date:ToFormattedString("ddd")) -- Mon log(date:ToFormattedString("ddd", "fr-FR")) -- lun. ``` ```lua local date = DateTime(2022, 8, 29, 19, 27, 15) log(date:ToFormattedString("dddd")) -- Monday log(date:ToFormattedString("dddd", "fr-FR")) -- [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "dd" 사용자 지정 서식 지정자는 일을 01부터 31까지의 숫자로 나타냅니다. 일이 한 자릿수인 경우 십의 자리에는 0이 표시됩니다. ```lua local date = DateTime(2022, 8, 9, 19, 27, 15) log(date:ToFormattedString("dd")) -- 09 ``` #### "ddd" "ddd" 사용자 지정 서식 지정자는 요일의 약식 이름을 나타냅니다. 문화권을 지정하면, 문화권에 해당하는 약식 요일이 나타납니다. ```lua local date = DateTime(2022, 8,
[task] | code [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | DateTime 객체의 ToFormattedString 메서드를 이용해 "r" 서식 지정자로 IETF RFC 1123 표준에 부합하는 GMT 시간 문자열을 생성하고 log로 출력하는 스크립트를 작성해줘 [answer] | `DateTime` 객체의 `ToFormattedString` 메서드에 `"r"` 서식 지정자를 전달하면 IETF RFC 1123 표준에 부합하는 GMT 시간 문자열이 생성됩니다. 이 서식은 기본적으로 `"ddd, dd MMM yyyy HH:mm:ss 'GMT'"` 패턴을 따르며, 결과는 항상 UTC 기준으로 표시됩니다. 요청하신 기능을 수행하는 mLua 스크립트 컴포넌트는 다음과 같습니다. ```lua Property: [None] number TestDateYear = 2022 number TestDateMonth = 4 n [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | #### "R", "r" "R" 또는 "r" 표준 서식 지정자는 IETF RFC 1123 사양을 기반으로 시간 값에 대한 사용자 지정 서식 문자열을 나타냅니다. (**"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'"**) 사용자 지정 서식 문자열에서 작은따옴표는 리터럴에 해당합니다. 작은따옴표는 하이픈, 콜론 및 개발 문자를 구분하는 용도로 사용합니다. 따라서 결과 문자열에 표시되지 않습니다. 시간은 IETF RFC 1123 표준에 따라 UTC로 표시되기 때문에 서식 지정자를 사용하기 전에 값이 UTC인지 확인해
[task] | code [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | DateTime 객체의 "M" 표준 서식 지정자를 사용하여 기본 문화권과 "pt-BR" 문화권 두 가지로 월과 일을 포맷하여 로그에 출력하는 스크립트를 작성해줘 [answer] | `DateTime` 객체의 `ToFormattedString` 메서드에 표준 서식 지정자 `"M"`을 전달하면 기본 문화권에서는 `MMMM dd` 형식(예: `April 10`)으로, 문화권 코드 `"pt-BR"`을 추가로 전달하면 해당 문화권의 월 이름과 일 형식(예: `10 de abril`)으로 포맷된 문자열을 반환합니다. 요청하신 내용을 구현한 스크립트는 다음과 같습니다. ```lua Method: [server only] void OnBeginPlay() { local date = DateTime(2022, 4, [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "M" 또는 "m" 표준 서식 지정자는 특정 문화권의 월 서식 문자열을 나타냅니다. 문화권을 지정하지 않을 경우 서식 문자열은 **"MMMM dd"**입니다. ```lua local date = DateTime(2022, 4, 10) log(date:ToFormattedString("m")) -- April 10 log(date:ToFormattedString("m", "pt-BR")) -- 10 de abril ``` #### "Y", "y" "Y" 또는 "y" 표준 서식 지정자는 특정 문화권의 년 월 서식 문자열을 나타냅
[task] | single_turn [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | "FFF" 서식 지정자를 사용할 때 유효 자릿수가 모두 0이면 어떤 결과가 출력되는지 설명해 주세요. [answer] | "FFF" 사용자 지정 서식 지정자는 날짜 및 시간 값에서 1/1000 초를 나타내며, 유효 자릿수가 3개인 특징을 가지고 있습니다. 이때 유효 자릿수가 모두 0인 경우, 아무것도 표시되지 않습니다. [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "dd" 사용자 지정 서식 지정자는 일을 01부터 31까지의 숫자로 나타냅니다. 일이 한 자릿수인 경우 십의 자리에는 0이 표시됩니다. ```lua local date = DateTime(2022, 8, 9, 19, 27, 15) log(date:ToFormattedString("dd")) -- 09 ``` #### "ddd" "ddd" 사용자 지정 서식 지정자는 요일의 약식 이름을 나타냅니다. 문화권을 지정하면, 문화권에 해당하는 약식 요일이 나타납니다. ```lua local date = DateTime(2022, 8,
[task] | single_turn [pass] | ⏳ 미판정 [title] | 날짜와 시간 활용하기 [question] | 문화권 지정 없이 ToFormattedString의 "ddd"와 "dddd"를 사용할 때 출력되는 요일 이름의 언어는 무엇인가요? [answer] | 문화권을 지정하지 않고 `ToFormattedString`의 `"ddd"`와 `"dddd"` 서식 지정자를 사용할 경우, 출력되는 요일 이름은 영어입니다. 예를 들어 2022년 8월 29일(월요일)에 대해 다음과 같이 출력됩니다. ```lua local date = DateTime(2022, 8, 29, 19, 27, 15) log(date:ToFormattedString("ddd")) -- Mon log(date:ToFormattedString("dddd")) -- Monday ``` [followup] | [followup_answer] | [scores] | [judge_reason] | [source_doc] | "dd" 사용자 지정 서식 지정자는 일을 01부터 31까지의 숫자로 나타냅니다. 일이 한 자릿수인 경우 십의 자리에는 0이 표시됩니다. ```lua local date = DateTime(2022, 8, 9, 19, 27, 15) log(date:ToFormattedString("dd")) -- 09 ``` #### "ddd" "ddd" 사용자 지정 서식 지정자는 요일의 약식 이름을 나타냅니다. 문화권을 지정하면, 문화권에 해당하는 약식 요일이 나타납니다. ```lua local date = DateTime(2022, 8,