/************************************************************** * * 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 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #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