blob: 48d8b1f710eb64d9ab0acb3b46134a18f50dd3ae [file] [log] [blame]
/**************************************************************
*
* 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 <type>XCalendar</type> methods.
<p> Field is writable only if marked both Get/Set. </p>
<p> 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 </p>
<p> 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))
<p>
*/
published constants CalendarFieldIndex
{
/// Get <type>AmPmValue</type>.
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]
<p> 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. </p>
<p> Note that there is a bug in OpenOffice.org 1.0 / StarOffice 6.0
that prevents interpreting this value correctly. </p> */
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-...].
<p> Note that the maximum value is <b>not</b> necessarily 11 for
December but depends on the calendar used instead. </p> */
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 &lt; OpenOffice 3.1
const short FIELD_COUNT = 15;
/** Get/Set additional offset in milliseconds that <b>adds</b> 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 OpenOffice 3.1
*/
const short ZONE_OFFSET_SECOND_MILLIS = 15;
/** Get additional offset in milliseconds that <b>adds</b> 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 OpenOffice 3.1
*/
const short DST_OFFSET_SECOND_MILLIS = 16;
/** Total number of fields as of OpenOffice 3.1
@since OpenOffice 3.1
*/
const short FIELD_COUNT2 = 17;
};
//=============================================================================
}; }; }; };
#endif