/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #ifndef __com_sun_star_i18n_CalendarFieldIndex_idl__ #define __com_sun_star_i18n_CalendarFieldIndex_idl__ module com { module sun { module star { module i18n { /** Field indices to be passed to various XCalendar methods.
Field is writable only if marked both Get/Set.
ZONE_OFFSET and DST_OFFSET cooperate such that both values are added, for example, ZoneOffset=1*60 and DstOffset=1*60 results in a time difference of GMT+2. The calculation in minutes is GMT = LocalTime - ZoneOffset - DstOffset
With introduction of ZONE_OFFSET_SECOND_MILLIS and DST_OFFSET_SECOND_MILLIS the exact calculation in milliseconds is GMT = LocalTime - (ZoneOffset*60000 + ZoneOffsetMillis * sign(ZoneOffset)) - (DstOffset*60000 + DstOffsetMillis * sign(DstOffset))
*/ published constants CalendarFieldIndex { /// Get AmPmValue. const short AM_PM = 0; /// Get/Set day of month [1-31]. const short DAY_OF_MONTH = 1; /// Get day of week [0-6]. const short DAY_OF_WEEK = 2; /// Get day of year. const short DAY_OF_YEAR = 3; /** Get daylight saving time offset in minutes, e.g. [0*60..1*60]
The DST offset value depends on the actual date set at the calendar and is determined according to the timezone rules of the locale used with the calendar.
Note that there is a bug in OpenOffice.org 1.0 / StarOffice 6.0 that prevents interpreting this value correctly.
*/ const short DST_OFFSET = 4; /// Get/Set hour [0-23]. const short HOUR = 5; /// Get/Set minute [0-59]. const short MINUTE = 6; /// Get/Set second [0-59]. const short SECOND = 7; /// Get/Set milliseconds [0-999]. const short MILLISECOND = 8; /// Get week of month. const short WEEK_OF_MONTH = 9; /// Get week of year. const short WEEK_OF_YEAR = 10; /// Get/Set year. const short YEAR = 11; /** Get/Set month [0-...].Note that the maximum value is not necessarily 11 for December but depends on the calendar used instead.
*/ const short MONTH = 12; /// Get/Set era, for example, 0:= Before Christ, 1:= After Christ. const short ERA = 13; /// Get/Set time zone offset in minutes, e.g. [-14*60..14*60] const short ZONE_OFFSET = 14; /// Total number of fields for < OOo 3.1 const short FIELD_COUNT = 15; /** Get/Set additional offset in milliseconds that adds to the value of ZONE_OFFSET. This may be necessary to correctly interpret historical timezone data that consists of fractions of minutes, e.g. seconds. 1 minute == 60000 milliseconds. @attention Though the field's type is signed 16-bit, the field value is treated as unsigned 16-bit to allow for values up to 60000 and expresses an absolute value that inherits its sign from the parent ZONE_OFFSET field. @since OOo 3.1 */ const short ZONE_OFFSET_SECOND_MILLIS = 15; /** Get additional offset in milliseconds that adds to the value of DST_OFFSET. This may be necessary to correctly interpret historical timezone data that consists of fractions of minutes, e.g. seconds. 1 minute == 60000 milliseconds. @attention Though the field's type is signed 16-bit, the field value is treated as unsigned 16-bit to allow for values up to 60000 and expresses an absolute value that inherits its sign from the parent DST_OFFSET field. @since OOo 3.1 */ const short DST_OFFSET_SECOND_MILLIS = 16; /** Total number of fields as of OOo 3.1 @since OOo 3.1 */ const short FIELD_COUNT2 = 17; }; }; }; }; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */