/************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * Copyright 2000, 2010 Oracle and/or its affiliates. * * OpenOffice.org - a multi-platform office productivity suite * * This file is part of OpenOffice.org. * * OpenOffice.org is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 3 * only, as published by the Free Software Foundation. * * OpenOffice.org is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License version 3 for more details * (a copy is included in the LICENSE file that accompanied this code). * * You should have received a copy of the GNU Lesser General Public License * version 3 along with OpenOffice.org. If not, see * * for a copy of the LGPLv3 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