이 페이지에서

QCalendar Class

QCalendar 클래스는 달력 체계를 설명합니다. 더 보기...

헤더: #include <QCalendar>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

참고: 이 클래스의 모든 함수는 재진입 가능합니다.

공개 타입

(since 6.2) class SystemId
enum class System { Gregorian, Julian, Milankovic, Jalali, IslamicCivil }

공개 함수

QCalendar()
QCalendar(QAnyStringView name)
QCalendar(QCalendar::System system)
(since 6.2) QCalendar(QCalendar::SystemId id)
QDate dateFromParts(const QCalendar::YearMonthDay &parts) const
QDate dateFromParts(int year, int month, int day) const
QString dateTimeToString(QStringView format, const QDateTime &datetime, QDate dateOnly, QTime timeOnly, const QLocale &locale) const
int dayOfWeek(QDate date) const
int daysInMonth(int month, int year = Unspecified) const
int daysInYear(int year) const
bool hasYearZero() const
bool isDateValid(int year, int month, int day) const
bool isGregorian() const
bool isLeapYear(int year) const
bool isLunar() const
bool isLuniSolar() const
bool isProleptic() const
bool isSolar() const
bool isValid() const
(since 6.7) QDate matchCenturyToWeekday(const QCalendar::YearMonthDay &parts, int dow) const
int maximumDaysInMonth() const
int maximumMonthsInYear() const
int minimumDaysInMonth() const
QString monthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const
int monthsInYear(int year) const
QString name() const
QCalendar::YearMonthDay partsFromDate(QDate date) const
QString standaloneMonthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const
QString standaloneWeekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const
QString weekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const

정적 공용 멤버

QStringList availableCalendars()

상세 설명

QCalendar 객체는 특정 시스템의 규칙을 사용하여 연도, 월, 일 번호를 특정 날짜(궁극적으로는 율리우스력 일 번호로 식별됨)에 매핑합니다.

기본 QCalendar()는 0년이 없는 선행 그레고리력입니다. 적절한 기능을 활성화하거나 플러그인을 로드하여 다른 달력을 지원할 수도 있습니다. 기능으로 지원되는 달력은 생성자에 ` QCalendar::System ` 열거형을 전달하여 생성할 수 있습니다. 지원되는 모든 달력은 일단 생성된 후에는 이름으로 생성할 수 있습니다. (따라서 플러그인은 달력 백엔드를 인스턴스화하여 등록합니다.) QCalendar::System 를 통해 접근할 수 있는 내장 백엔드도 항상 이름으로 사용할 수 있습니다. 사용자 정의 백엔드를 사용하는 달력은 생성 시 백엔드에 할당된 고유 ID를 사용하여 생성할 수도 있습니다.

QCalendar 값은 불변입니다.

QDate 및 QDateTime도 참조하십시오 .

멤버 유형 문서

enum class QCalendar::System

이 열거형은 달력 체계의 선택 항목을 지정하는 데 사용됩니다.

상수값설명
QCalendar::System::Gregorian0국제적으로 사용되는 기본 달력입니다.
QCalendar::System::Julian8고대 로마의 달력.
QCalendar::System::Milankovic9일부 정교회에서 사용하는 개정 율리우스력.
QCalendar::System::Jalali10태양 히지라력(페르시아력이라고도 함).
QCalendar::System::IslamicCivil11(표 형식의) 이슬람 민력.

QCalendar 및 QCalendar::SystemId도 참조하십시오 .

멤버 함수 문서

[explicit] QCalendar::QCalendar()

[explicit] QCalendar::QCalendar(QAnyStringView name)

[explicit] QCalendar::QCalendar(QCalendar::System system)

캘린더 객체를 생성합니다.

사용할 캘린더는 ` system`을 통해 ` QCalendar::System` 열거형을 사용하거나, ` name`을 통해 문자열(유니코드 또는 라틴 1)을 사용하여 지정할 수 있습니다. 이름으로 생성하는 경우, 지정된 캘린더의 인스턴스가 다른 방법으로 먼저 생성되었어야 할 수도 있습니다. 인수가 없으면 기본 생성자는 그레고리력을 반환합니다.

참고: Qt 6.4 이전버전에서는 name 을 통한 생성자가 QStringView 과 QLatin1String 만 허용했으며, QAnyStringView 은 허용하지 않았습니다.

QCalendar, System 및 isValid()도 참조하십시오 .

[explicit, since 6.2] QCalendar::QCalendar(QCalendar::SystemId id)

캘린더 객체를 생성합니다.

사용자 정의 캘린더 구현체를 사용할 경우, 해당 백엔드는 생성 시 고유 ID가 할당됩니다. 이 생성자에 해당 ID를 ` id ` 매개변수로 전달하면 해당 백엔드를 사용하는 `QCalendar` 객체를 얻을 수 있습니다. 이는 백엔드가 이름으로 등록되지 않은 경우에 유용할 수 있습니다.

이 함수는 오버로드된 함수입니다.

이 함수는 Qt 6.2에서 도입되었습니다.

[static] QStringList QCalendar::availableCalendars()

사용 가능한 캘린더 시스템의 이름 목록을 반환합니다.

이 목록에는 Qt에서 제공하는 것들 외에도, 플러그인이나 애플리케이션에 링크된 다른 코드에서 제공되는 것들이 포함될 수 있으며, 그중 일부는 기능에 의해 제어됩니다.

QDate QCalendar::dateFromParts(const QCalendar::YearMonthDay &parts) const

QDate QCalendar::dateFromParts(int year, int month, int day) const

연도, 월, 일을 QDate 형식으로 변환합니다.

year, month 및 day 는 개별 숫자로 전달되거나 parts 의 멤버로 묶어서 전달될 수 있습니다. 이 캘린더에 해당 연도, 월 및 날짜가 존재할 경우, 이를 포함하는 QDate 를 반환합니다. 그렇지 않은 경우(값 중 하나가 QCalendar::Unspecified인 경우 포함), isNull()이 true인 QDate 을 반환합니다. 표현된 날짜가 QDate 에서 지원하는 범위를 벗어날 경우, 반환된 QDate 의 isValid()은 false가 됩니다.

isDateValid() 및 partsFromDate()도 참조하십시오 .

QString QCalendar::dateTimeToString(QStringView format, const QDateTime &datetime, QDate dateOnly, QTime timeOnly, const QLocale &locale) const

주어진 날짜, 시간 또는 날짜-시간을 나타내는 문자열을 반환합니다.

datetime 가 유효한 경우, 해당 형식이 표현되며 날짜 및 시간 필드 모두에 대한 서식 지정자가 인식됩니다. 그렇지 않은 경우, dateOnly 가 유효하면 해당 형식이 표현되며 날짜 필드에 대한 서식 지정자만 인식됩니다. 마지막으로, timeOnly 가 유효하면 해당 형식이 표현되며 시간 필드에 대한 서식 지정자만 인식됩니다. 이 중 유효한 것이 하나도 없으면 빈 문자열이 반환됩니다.

지원되는 필드 지정자에 대해서는 QDate::toString 및 QTime::toString()을 참조하십시오. format 에 포함된 문자 중 필드 지정자로 인식되는 문자는, 표현되는 날짜 및/또는 시간의 적절한 데이터를 나타내는 텍스트로 대체됩니다. 이를 나타내는 텍스트는 지정된 locale 에 따라 달라질 수 있습니다. format 에 포함된 다른 문자들은 반환되는 문자열에 그대로 복사됩니다.

monthName(), weekDayName(), QDate::toString(), QTime::toString()함수도 참조하십시오 .

int QCalendar::dayOfWeek(QDate date) const

지정된 날짜 date 에 해당하는 요일 번호를 반환합니다.

달력이 지정된 날짜를 표현할 수 없는 경우 0을 반환합니다. 월요일은 1, 일요일은 7을 반환합니다. 윤일이 포함된 달력의 경우 이를 나타내기 위해 다른 숫자를 사용할 수 있습니다.

partsFromDate() 및 Qt::DayOfWeek도 참조하십시오 .

int QCalendar::daysInMonth(int month, int year = Unspecified) const

지정된 year 의 지정된 month 에 포함된 일 수를 반환합니다.

월은 각 연도의 첫 번째 월을 1로 시작하여 연속적으로 번호가 매겨집니다. year 가 Unspecified 인 경우(매개변수가 전달되지 않으면 기본값), 모든 연도 중 해당 월의 최대 길이가 반환됩니다.

maximumDaysInMonth() 및 minimumDaysInMonth()도 참조하십시오 .

int QCalendar::daysInYear(int year) const

지정된 year 의 일 수를 반환합니다.

Unspecified 를 year 로 처리하는 경우의 동작은 정의되지 않습니다.

bool QCalendar::hasYearZero() const

이 달력에 0년이 포함되어 있으면 ` true `를 반환합니다.

달력은 첫 해부터 연도를 나타낼 수는 있지만, 첫 해 이전의 연도를 표현할 수 있는 방법을 제공하지 않을 수 있습니다. 이러한 달력에는 연도 0이 없으며, 선행적(proleptic)이 아닙니다.

첫 해 이전의 연도를 나타내는 달력은 일반적인 정수 계수 방식을 따르기만 하면 되며, 이 경우 첫 해 이전의 연도는 0년이고, 그 이전의 연도에는 음수가 부여됩니다. 이러한 달력은 프로레프틱(proleptic)이며 0년을 갖습니다. 달력은 0년을 가질 수도 있지만(예를 들어, 어떤 중대한 사건이 발생한 해를 0년으로 정하고, 그 이후의 해를 그 사건 이후 첫 해, 두 번째 해 등으로 표기하는 경우), 0년 이전의 연도를 명시하지 않을 수도 있습니다. 이러한 달력은 0년을 가지지만 프로레프틱 달력은 아닙니다.

그러나 일부 달력은 첫 해 이전의 연도를 별도의 번호 체계로 표기하기도 한다. 예를 들어, 프로레프틱 그레고리력에서 첫 해는 서기 1년(1 CE)이며, 그 이전 해는 서기 전 1년(1 BCE)이고, 그 앞에는 서기 전 2년(2 BCE)이 오는 식이다. 이 경우, 우리는 이러한 대체 번호 체계에 음수 연도 번호를 사용하며, 1년 전을 -1년, -1년 전을 -2년 등으로 표기합니다. 이러한 달력은 프로렙틱 방식이지만 0년은 존재하지 않습니다.

isProleptic()항목도 참조하십시오 .

bool QCalendar::isDateValid(int year, int month, int day) const

주어진 year, month, day 가 이 달력에서 유효한 날짜를 나타내는 경우에만 정확히 true 를 반환합니다.

일반적으로 이는 1 <= month <= monthsInYear(year) 및 1 <= day <= daysInMonth(month, year)를 의미합니다. 그러나 윤일이나 윤월이 있는 달력의 경우 상황이 복잡해질 수 있습니다.

bool QCalendar::isGregorian() const

이 캘린더 객체가 다른 Qt API(예: QDate)에서 기본 캘린더로 사용되는 그레고리력 캘린더 객체인 경우, ` true `를 반환합니다.

bool QCalendar::isLeapYear(int year) const

주어진 연도( year )가 윤년인 경우 ` true `를 반환합니다.

연도는 일수로 따졌을 때 정수가 아니기 때문에, 어떤 해는 다른 해보다 길 수 있습니다. 그 차이는 한 달 전체일 수도 있고 단 하루일 수도 있으며, 구체적인 내용은 달력에 따라 다릅니다.

isDateValid()도 참조하십시오 .

bool QCalendar::isLunar() const

이 달력이 음력인 경우 true 를 반환합니다.

음력은 주로 달의 위상에 기초한 달력을 말합니다.

bool QCalendar::isLuniSolar() const

이 달력이 태음태양력인 경우 true 를 반환합니다.

태음태양력은 달의 위상을 나타내면서도, 고정된 별을 기준으로 한 하늘에서 태양의 변화하는 위치를 추적할 수 있도록 조정되어 있습니다.

bool QCalendar::isProleptic() const

이 달력이 프로렙틱인 경우 ` true `를 반환합니다.

선행 달력은 첫 해보다 임의로 먼 과거의 연도를 표현할 수 있습니다. 이러한 연도는 음수의 연도 번호나, 경우에 따라 0년으로 표현됩니다.

hasYearZero()도 참조하십시오 .

bool QCalendar::isSolar() const

이 달력이 태양력인 경우 true 를 반환합니다.

태양력은 주로 고정된 별을 기준으로 한 하늘에서 태양의 위치 변화에 기초합니다.

bool QCalendar::isValid() const

이 객체가 유효한 캘린더 객체인 경우 true를 반환합니다.

알 수 없는 캘린더 이름으로 캘린더를 생성하면 유효하지 않은 객체가 생성될 수 있습니다. 이름으로 캘린더를 생성한 후 이 메서드를 사용하여 확인하십시오.

[since 6.7] QDate QCalendar::matchCenturyToWeekday(const QCalendar::YearMonthDay &parts, int dow) const

지정된 요일에 맞춰 날짜의 세기를 조정합니다.

날짜의 요일, 월 내 날짜, 월 및 연도의 마지막 두 자릿수가 주어졌을 때 사용합니다. 주어진 요일( dow )을 요일( dayOfWeek())로 설정하고, 주어진 월( parts )과 월 내 날짜(day of the month)가 일치하는 ` QDate ` 인스턴스를 반환합니다. 반환된 ` QDate`의 ` year()`는 ` parts.year `와 100의 배수만큼 차이가 나며, 더 큰 배수보다는 작은 배수를, 부호 없는 양수 배수보다는 부호 없는 음수 배수를 우선합니다.

이러한 조건에 부합하는 날짜가 없는 경우, 유효하지 않은 QDate 가 반환됩니다: 요일이 주어진 다른 데이터와 호환되지 않기 때문입니다. 이는 예를 들어 그레고리력에서 발생하는데, 이 달력의 400년 주기는 정수 주 단위로 이루어져 있으므로, 특정 마지막 두 자릿수를 가진 해에서는 주어진 달과 그 달의 특정 날짜가 오직 네 가지 요일에만 해당됩니다. (세기가 바뀌는 시점에 윤년인 2월 29일의 특수한 경우, 가능한 요일은 화요일 단 하루뿐입니다.)

이 함수는 Qt 6.7에서 도입되었습니다.

int QCalendar::maximumDaysInMonth() const

달력상 가장 긴 달의 일수를, 연도를 불문하고 반환합니다.

daysInMonth() 및 minimumDaysInMonth()도 참조하십시오 .

int QCalendar::maximumMonthsInYear() const

어떤 해에도 포함될 수 있는 최대 월 수를 반환합니다.

monthName(), standaloneMonthName(), monthsInYear()도 참조하십시오 .

int QCalendar::minimumDaysInMonth() const

달력상 가장 짧은 달의 일수를, 연도를 불문하고 반환합니다.

daysInMonth() 및 maximumDaysInMonth()도 참조하십시오 .

QString QCalendar::monthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const

해당 월에 대해 적절하게 현지화된 이름을 반환합니다.

월은 숫자로 표시되며, ` month = 1`은 연도의 첫 번째 달을 의미하고, 그 이후의 달은 순서대로 번호가 매겨집니다. ` month ` 숫자가 인식되지 않으면 빈 문자열을 반환합니다.

year 는 'Unspecified'일 수 있으며, 이 경우 일반적인 연도의 월 번호와 이름 간의 매핑을 사용해야 합니다. 일부 달력에는 반드시 연말에 위치하지 않는 윤달이 있을 수 있으며, 이 경우 월 번호와 이름 간의 매핑은 윤달의 위치에 따라 달라질 수 있습니다. 따라서 가능한 경우 연도를 명시해야 합니다.

이름은 지정된 locale 에서 일반적으로 전체 날짜에 사용되는 형식으로 반환되며, format 는 이름이 얼마나 완전하게 표현될지(즉, 어느 정도까지 축약될지)를 결정합니다.

standaloneMonthName(), maximumMonthsInYear(), dateTimeToString()도 참조하십시오 .

int QCalendar::monthsInYear(int year) const

지정된 year 의 개월 수를 반환합니다.

year 가 Unspecified 인 경우, 1년 중 최대 개월 수를 반환합니다.

maximumMonthsInYear()도 참조하십시오 .

QString QCalendar::name() const

이 캘린더의 기본 이름입니다.

이 캘린더는 몇 가지 별칭으로도 알려져 있을 수 있습니다. 이름으로 인스턴스화된 캘린더는 이러한 별칭을 사용할 수 있으며, 이 경우 해당 캘린더의 name() 메서드 값이 인스턴스화될 때 사용된 별칭과 일치할 필요는 없습니다.

QCalendar::YearMonthDay QCalendar::partsFromDate(QDate date) const

QDate 를 연도, 월, 일로 변환합니다.

달력이 주어진 date 을 표현할 수 없는 경우(또는 해당 연도가 int 가 표현할 수 있는 범위를 벗어날 경우), 반환된 구조체의 isValid()는 false가 되어야 합니다. 그렇지 않은 경우, 연도, 월, 일 멤버는 표현식의 해당 부분을 기록합니다.

dateFromParts(), isProleptic() 및 hasYearZero()도 참조하십시오 .

QString QCalendar::standaloneMonthName(const QLocale &locale, int month, int year = Unspecified, QLocale::FormatType format = QLocale::LongFormat) const

해당 월에 대해 적절하게 현지화된 독립형 이름을 반환합니다.

월은 숫자로 표시되며, ' month ' = 1은 연도의 첫 번째 달을 의미하고, 이후의 달은 그에 따라 번호가 매겨집니다. ' month ' 숫자가 인식되지 않으면 빈 문자열을 반환합니다.

year 는 'Unspecified'일 수 있으며, 이 경우 일반적인 연도의 월에 대한 번호-이름 매핑을 사용해야 합니다. 일부 달력에는 반드시 연말에 위치하지 않는 윤달이 있을 수 있으며, 이 경우 월 번호와 이름 간의 매핑은 윤달의 위치에 따라 달라질 수 있습니다. 따라서 가능한 경우 연도를 명시해야 합니다.

이름은 지정된 locale 에서 단독으로 사용될 수 있는 형식으로 반환되며, format 는 이름이 얼마나 완전하게 표현될지(즉, 어느 정도까지 축약될지)를 결정합니다.

monthName(), maximumMonthsInYear(), dateTimeToString()도 참조하십시오 .

QString QCalendar::standaloneWeekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const

요일의 이름을 해당 지역에 맞게 현지화된 독립형 이름으로 반환합니다.

요일은 월요일을 1번, 일요일을 7번으로 번호가 매겨집니다. 일부 달력에서는 다른 요일(예: 어떤 주에도 속하지 않는 윤일)에 대해 더 큰 번호를 지원할 수도 있습니다. day 번호가 인식되지 않으면 빈 문자열을 반환합니다.

이름은 지정된 locale 에서 단독으로 사용될 수 있는 형식(예: 연속된 주를 행으로 표시하는 달력의 월별 표 형식에서 열 머리글로 사용될 때)으로 반환되며, format 는 이름이 얼마나 완전하게 표현될지(즉, 어느 정도까지 축약될지)를 결정합니다.

weekDayName() 및 dayOfWeek()도 참조하십시오 .

QString QCalendar::weekDayName(const QLocale &locale, int day, QLocale::FormatType format = QLocale::LongFormat) const

요일의 이름을 해당 지역에 맞게 현지화한 형태로 반환합니다.

요일은 월요일을 1번, 일요일을 7번으로 번호가 매겨집니다. 일부 달력에서는 다른 요일(예: 특정 주에 속하지 않는 윤일)에 대해 더 큰 번호를 사용할 수도 있습니다. day 번호가 인식되지 않으면 빈 문자열을 반환합니다.

이름은 지정된 locale 에서 일반적으로 전체 날짜에 사용되는 형식으로 반환되며, format 는 이름이 얼마나 완전하게 표현될지(즉, 어느 정도까지 축약될지)를 결정합니다.

standaloneWeekDayName() 및 dayOfWeek()도 참조하십시오 .

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.