Your IP : 216.73.216.48
/* -*- Mode: idl; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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/. */
#include "nsISupports.idl"
interface calIDateTime;
interface calIItemBase;
[scriptable, uuid(69741510-5f5d-11e4-9803-0800200c9a66)]
interface calIDateTimeFormatter : nsISupports
{
/**
* Format a date in either short or long format, depending on the
* users preference
*
* @see
* formatDateShort
* formatDateLong
*/
AString formatDate(in calIDateTime aDate);
/**
* Format a date into a short format, for example
* "12/17/2005"
*
* @param aDate
* the datetime to format
* @returns
* a string representing the date part of the datetime
*/
AString formatDateShort(in calIDateTime aDate);
/**
* Format a date into a long format, for example
* "Sat Dec 17 2005"
*
* @param aDate
* the datetime to format
* @returns
* a string representing the date part of the datetime
*/
AString formatDateLong(in calIDateTime aDate);
/**
* Format a date into a short format without mentioning the year, for
* example "Dec 17"
*
* @param aDate
* the datetime to format
* @returns
* a string representing the date part of the datetime
*/
AString formatDateWithoutYear(in calIDateTime aDate);
/**
* Format a time into the format specified by the OS settings.
* Will omit the seconds from the output.
*
* @param aDate
* the datetime to format
* @returns
* a string representing the time part of the datetime
*/
AString formatTime(in calIDateTime aDate);
/**
* Format a datetime into the format specified by the OS settings.
* Will omit the seconds from the output.
*
* @param aDateTime
* the datetime to format
* @returns
* a string representing the datetime
*/
AString formatDateTime(in calIDateTime aDate);
/**
* Format a time interval that is defined by an item with the default
* timezone Internally it calls "formatInterval" after retrieving
* the start/entry and end/due date of the item.
*
* @param aItem
* The item describing the interval
*/
AUTF8String formatItemInterval(in calIItemBase aItem);
/**
* Format a time interval like formatItemInterval, but only show times.
*
* @param aItem The item providing the interval
* @return The string describing the interval
*/
AUTF8String formatItemTimeInterval(in calIItemBase aItem);
/**
* Format a date/time interval. The returned string may assume that the
* dates are so close to each other, that it can leave out some parts of the
* part string denoting the end date.
*
* @param aStartDate The start of the interval
* @param aEndDate The end of the interval
* @return A String describing the interval in a legible form
*/
AUTF8String formatInterval(in calIDateTime aStartDate,
in calIDateTime aEndDate);
/**
* Format a time interval like formatInterval, but show only the time.
*
* @param aStartDate The start of the interval.
* @param aEndDate The end of the interval.
* @return The formatted time interval.
*/
AUTF8String formatTimeInterval(in calIDateTime aStartTime,
in calIDateTime aEndTime);
/**
* Get the monthday followed by its ordinal symbol in the current locale.
* e.g. monthday 1 -> 1st
* monthday 2 -> 2nd etc.
*
* @param aMonthdayIndex
* a number from 1 to 31
* @returns
* the monthday number in ordinal format in the current locale
*/
AUTF8String formatDayWithOrdinal(in unsigned long aMonthdayIndex);
/**
* Get the month name
*
* @param aMonthIndex
* zero-based month number (0 is january, 11 is december)
* @returns
* the month name in the current locale
*/
AString monthName(in unsigned long aMonthIndex);
/**
* Get the abbrevation of the month name
*
* @see monthName
*/
AString shortMonthName(in unsigned long aMonthIndex);
/**
* Get the day name
* @param aMonthIndex
* zero-based month number (0 is sunday, 6 is saturday)
* @returns
* the day name in the current locale
*/
AString dayName(in unsigned long aDayIndex);
/**
* Get the abbrevation of the day name
* @see dayName
*/
AString shortDayName(in unsigned long aDayIndex);
};