declare namespace dojo { namespace date { /* dojo/date */ /* TODO: Activate for TS 1.8+ */ /* type DatePortion = 'date' | 'time' | 'datetime'; */ /* type DateInterval = 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second' | 'millisecond' | 'quarter' | 'week' | 'weekday'; */ interface DateBase { /** * Returns the number of days in the month used by dateObject */ getDaysInMonth(dateObject: Date): number; /** * Determines if the year of the dateObject is a leap year */ isLeapYear(dateObject: Date): boolean; /** * Get the user's time zone as provided by the browser */ getTimezoneName(dateObject: Date): string; /** * Compare two date objects by date, time, or both. * */ compare(date1: Date, date2: Date, portion?: string /* DatePortion */): number; /** * Add to a Date in intervals of different size, from milliseconds to years */ add(date: Date, interval: string /* DateInterval */, amount: number): Date; /** * Get the difference in a specific unit of time (e.g., number of * months, weeks, days, etc.) between two dates, rounded to the * nearest integer. */ difference(date1: Date, date2?: Date, interval?: string /* DateInterval */): number; } /* dojo/date/locale */ /* TODO: Activate for TS 1.8+ */ /* type DateLocaleFormatSelector = 'time' | 'date'; */ /* type DateLocaleFormatLength = 'long' | 'short' | 'medium' | 'full'; */ interface DateLocaleFormatOptions { /** * choice of 'time','date' (default: date and time) */ selector?: string; /* DateLocaleFormatSelector */ /** * choice of long, short, medium or full (plus any custom additions). Defaults to 'short' */ formatLength?: string; /* DateLocaleFormatLength */ /** * override pattern with this string */ datePattern?: string; /** * override strings for am in times */ timePattern?: string; /** * override strings for pm in times */ am?: string; /** * override strings for pm in times */ pm?: string; /** * override the locale used to determine formatting rules */ locale?: string; /** * (format only) use 4 digit years whenever 2 digit years are called for */ fullYear?: boolean; /** * (parse only) strict parsing, off by default */ strict?: boolean; } interface DateLocale { /** * Returns the zone (or offset) for the given date and options. This * is broken out into a separate function so that it can be overridden * by timezone-aware code. */ _getZone(dateObject: Date, getName: boolean, options?: DateLocaleFormatOptions): string | number; /** * Format a Date object as a String, using locale-specific settings. */ format(dateObject: Date, options?: DateLocaleFormatOptions): string; /** * Builds the regular needed to parse a localized date */ regexp(options?: DateLocaleFormatOptions): string; _parseInfo(options?: DateLocaleFormatOptions): { regexp: string, tokens: string[], bundle: any }; /** * Convert a properly formatted string to a primitive Date object, * using locale-specific settings. */ parse(value: string, options?: DateLocaleFormatOptions): Date; /** * Add a reference to a bundle containing localized custom formats to be * used by date/time formatting and parsing routines. */ addCustomFormats(packageName: string, bundleName: string): void; _getGregorianBundle(locale: string): GenericObject; /* TODO: string literal types used here */ /** * Used to get localized strings from dojo.cldr for day or month names. */ getNames(item: string, type: string, context?: string, locale?: string): string[]; /** * Determines if the date falls on a weekend, according to local custom. */ isWeekend(dateObject: Date, locale?: string): boolean; /** * gets the day of the year as represented by dateObject */ _getDayOfYear(dateObject: Date): number; _getWeekOfYear(dateObject: Date, firstDayOfWeek?: number): number; } /* dojo/date/stamp */ interface StampFormatOptions { /** * "date" or "time" for partial formatting of the Date object. * Both date and time will be formatted by default. */ selector?: string /* DateLocaleFormatSelector */; /** * if true, UTC/GMT is used for a timezone */ zulu?: boolean; /** * if true, output milliseconds */ milliseconds?: boolean; } interface Stamp { /** * Returns a Date object given a string formatted according to a subset of the ISO-8601 standard. */ fromISOString(formattedString: string, defaultTime?: number): Date; /** * Format a Date object as a string according a subset of the ISO-8601 standard */ toISOString(dateObject: Date, options?: StampFormatOptions): string; } } }