Previous CloneSet | Next CloneSet | Back to Main Report |
Clone Mass | Clones in CloneSet | Parameter Count | Clone Similarity | Syntax Category [Sequence Length] |
---|---|---|---|---|
158 | 2 | 1 | 0.991 | SourceElements[8] |
Clone Abstraction | Parameter Bindings |
Clone Instance (Click to see clone) | Line Count | Source Line | Source File |
---|---|---|---|
1 | 176 | 54 | Closure/closure/goog/i18n/timezone.js |
2 | 158 | 54 | Closure/closure/goog/locale/timezone.js |
| ||||
/** * TimeZone class implemented a time zone resolution and name information * source for client applications. The time zone object is initiated from * a time zone information object. Application can initiate a time zone * statically, or it may choose to initiate from a data obtained from server. * Each time zone information array is small, but the whole set of data * is too much for client application to download. If end user is allowed to * change time zone setting, dynamic retrieval should be the method to use. * In case only time zone offset is known, there is a decent fallback * that only use the time zone offset to create a TimeZone object. * A whole set of time zone information array was available under * http://go/js_locale_data. It is generated based on CLDR and * Olson time zone data base (through pytz), and will be updated timely. * * @constructor */ goog.i18n.TimeZone= function ( ) { /** * The standard time zone id. * @type {string} * @private */ this.timeZoneId_; /** * The standard, non-daylight time zone offset, in minutes WEST of UTC. * @type {number} * @private */ this.standardOffset_; /** * An array of strings that can have 2 or 4 elements. The first two elements * are the long and short names for standard time in this time zone, and the * last two elements (if present) are the long and short names for daylight * time in this time zone. * @type {Array.<string>} * @private */ this.tzNames_; /** * This array specifies the Daylight Saving Time transitions for this time * zone. This is a flat array of numbers which are interpreted in pairs: * [time1, adjustment1, time2, adjustment2, ...] where each time is a DST * transition point given as a number of hours since 00:00 UTC, January 1, * 1970, and each adjustment is the adjustment to apply for times after the * DST transition, given as minutes EAST of UTC. * @type {Array.<number>} * @private */ this.transitions_; } ; /** * The number of milliseconds in an hour. * @type {number} * @private */ goog.i18n.TimeZone.MILLISECONDS_PER_HOUR_= 3600* 1000; /** * Indices into the array of time zone names. * @enum {number} */ goog.i18n.TimeZone.NameType= { STD_SHORT_NAME: 0, STD_LONG_NAME: 1, DLT_SHORT_NAME: 2, DLT_LONG_NAME: 3 } ; /** * This factory method creates a time zone instance. It takes either an object * containing complete time zone information, or a single number representing a * constant time zone offset. If the latter form is used, DST functionality is * not available. * * @param {number|Object} timeZoneData If this parameter is a number, it should * indicate minutes WEST of UTC to be used as a constant time zone offset. * Otherwise, it should be an object with these four fields: * <ul> * <li>id: A string ID for the time zone. * <li>std_offset: The standard time zone offset in minutes EAST of UTC. * <li>names: An array of four names (standard short name, standard long * name, daylight short name, daylight long, name) * <li>transitions: An array of numbers which are interpreted in pairs: * [time1, adjustment1, time2, adjustment2, ...] where each time is * a DST transition point given as a number of hours since 00:00 UTC, * January 1, 1970, and each adjustment is the adjustment to apply * for times after the DST transition, given as minutes EAST of UTC. * </ul> * @return {goog.i18n.TimeZone} A goog.i18n.TimeZone object for the given * time zone data. */ goog.i18n.TimeZone.createTimeZone= function (timeZoneData){ if (typeof timeZoneData== 'number') { return goog.i18n.TimeZone.createSimpleTimeZone_(timeZoneData); } var tz= new goog.i18n.TimeZone( ); tz.timeZoneId_= timeZoneData['id']; tz.standardOffset_= -timeZoneData['std_offset']; tz.tzNames_= timeZoneData['names']; tz.transitions_= timeZoneData['transitions']; return tz; } ; /** * This factory method creates a time zone object with a constant offset. * @param {number} timeZoneOffsetInMinutes Offset in minutes WEST of UTC. * @return {goog.i18n.TimeZone} A time zone object with the given constant * offset. Note that the time zone ID of this object will use the POSIX * convention, which has a reversed sign ("Etc/GMT+8" means UTC-8 or PST). * @private */ goog.i18n.TimeZone.createSimpleTimeZone_= function (timeZoneOffsetInMinutes){ var tz= new goog.i18n.TimeZone( ); tz.standardOffset_= timeZoneOffsetInMinutes; tz.timeZoneId_= goog.i18n.TimeZone.composePosixTimeZoneID_(timeZoneOffsetInMinutes); var str= goog.i18n.TimeZone.composeUTCString_(timeZoneOffsetInMinutes); tz.tzNames_= [str, str]; tz.transitions_= [ ]; return tz; } ; /** * Generate a GMT-relative string for a constant time zone offset. * @param {number} offset The time zone offset in minutes WEST of UTC. * @return {string} The GMT string for this offset, which will indicate * hours EAST of UTC. * @private */ goog.i18n.TimeZone.composeGMTString_= function (offset){ var parts= ['GMT']; parts.push(offset<= 0 ? '+' : '-'); offset= Math.abs(offset); parts.push(goog.string.padNumber(Math.floor(offset/ 60)% 100, 2), ':', goog.string.padNumber(offset% 60, 2)); return parts.join(''); } ; /** * Generate a POSIX time zone ID for a constant time zone offset. * @param {number} offset The time zone offset in minutes WEST of UTC. * @return {string} The POSIX time zone ID for this offset, which will indicate * hours WEST of UTC. * @private */ goog.i18n.TimeZone.composePosixTimeZoneID_= function (offset){ if (offset== 0) { return 'Etc/GMT'; } var parts= ['Etc/GMT', offset< 0 ? '-' : '+']; offset= Math.abs(offset); parts.push(Math.floor(offset/ 60)% 100); offset= offset% 60; if (offset!= 0) { parts.push(':', goog.string.padNumber(offset, 2)); } return parts.join(''); } ; /** * Generate a UTC-relative string for a constant time zone offset. * @param {number} offset The time zone offset in minutes WEST of UTC. * @return {string} The UTC string for this offset, which will indicate * hours EAST of UTC. * @private */ goog.i18n.TimeZone.composeUTCString_= function (offset){ if (offset== 0) { return 'UTC'; } var parts= ['UTC', offset< 0 ? '+' : '-']; offset= Math.abs(offset); parts.push(Math.floor(offset/ 60)% 100); offset= offset% 60; if (offset!= 0) { parts.push(':', offset); } return parts.join(''); } ; |
| ||||
/** * TimeZone class implemented a time zone resolution and name information * source for client applications. The time zone object is initiated from * a time zone information array. Application can initiate a time zone * statically, or it may choose to initiate from a data obtained from server. * Each time zone information array is small, but the whole set of data * is too much for client application to download. If end user is allowed to * change time zone setting, dynamic retrieval should be the method to use. * In case only time zone offset is known, there is a decent fallback * that only use the time zone offset to create a TimeZone object. * A whole set of time zone information array was available under * http://go/js_locale_data. It is generated based on CLDR and * Olson time zone data base (through pytz), and will be updated timely. * * @constructor * @deprecated Use goog.i18n.TimeZone. */ goog.locale.TimeZone= function ( ) { /** * The standard time zone id. * @type {string} * @private */ this.timeZoneId_; /** * The standard, non-daylight time zone offset. * @type {number} * @private */ this.standardOffset_; /** * An array of string that can have 2 or 4 elements, long and short names for * standard time zone, and long and short names for daylight time zone if it * has daylight time transitions. * @type {Array} * @private */ this.tzNames_; /** * Daylight/standard time transition array. It lists transition points since * 1970 until some year in future. It always in pair of (transition point) + * (time zone offset adjustment) * @type {Array} * @private */ this.transitions_; } ; /** * Milliseconds per hour constant. * @type {number} * @private */ goog.locale.TimeZone.MILLISECONDS_PER_HOUR_= 3600* 1000; /** * Enum of time zone names. The value will be used as index of in time zone * name array. * @enum {number} * @deprecated Use goog.i18n.TimeZone.NameType. */ goog.locale.TimeZone.NameType= { STD_SHORT_NAME: 0, STD_LONG_NAME: 1, DLT_SHORT_NAME: 2, DLT_LONG_NAME: 3 } ; /** * This factory method creates a time zone instance. It takes either a time zone * information array or a simple timezone offset. The latter form does not offer * the same set of functionalities as first form. * * @param {number|Array} timeZoneData this parameter could take 2 types, * if it is a number, a simple TimeZone object will be created. Otherwise, * it should be a array that holds all time zone related information. * @return {goog.locale.TimeZone} A goog.locale.TimeZone object for the given * time zone data. * @deprecated Use goog.i18n.TimeZone.createTimeZone. */ goog.locale.TimeZone.createTimeZone= function (timeZoneData){ if (typeof timeZoneData== 'number') { return goog.locale.TimeZone.createSimpleTimeZone_(timeZoneData); } var tz= new goog.locale.TimeZone( ); tz.timeZoneId_= timeZoneData['id']; tz.standardOffset_= -timeZoneData['std_offset']; tz.tzNames_= timeZoneData['names']; tz.transitions_= timeZoneData['transitions']; return tz; } ; /** * This factory method provides a decent fallback to create a time zone object * just based on a given time zone offset. * @param {number} timeZoneOffsetInMinutes time zone offset in minutes. * @return {goog.locale.TimeZone} A goog.locale.TimeZone object generated by * just using the time zone offset information. * @private */ goog.locale.TimeZone.createSimpleTimeZone_= function (timeZoneOffsetInMinutes){ var tz= new goog.locale.TimeZone( ); tz.standardOffset_= timeZoneOffsetInMinutes; tz.timeZoneId_= goog.locale.TimeZone.composePosixTimeZoneID_(timeZoneOffsetInMinutes); var str= goog.locale.TimeZone.composeUTCString_(timeZoneOffsetInMinutes); tz.tzNames_= [str, str]; tz.transitions_= [ ]; return tz; } ; /** * Generate GMT string given a time zone offset. * @param {number} offset time zone offset in minutes. * @return {string} GMT string for this offset. * @private */ goog.locale.TimeZone.composeGMTString_= function (offset){ var parts= ['GMT']; parts.push(offset<= 0 ? '+' : '-'); offset= Math.abs(offset); parts.push(goog.string.padNumber(Math.floor(offset/ 60)% 100, 2), ':', goog.string.padNumber(offset% 60, 2)); return parts.join(''); } ; /** * POSIX time zone ID as fallback. * @param {number} offset time zone offset in minutes. * @return {string} posix time zone id for given offset. * @private */ goog.locale.TimeZone.composePosixTimeZoneID_= function (offset){ if (offset== 0) { return 'Etc/GMT'; } var parts= ['Etc/GMT', offset< 0 ? '-' : '+']; offset= Math.abs(offset); parts.push(Math.floor(offset/ 60)% 100); offset= offset% 60; if (offset!= 0) { parts.push(':', goog.string.padNumber(offset, 2)); } return parts.join(''); } ; /** * Generate UTC string. * @param {number} offset time zone offset in minutes. * @return {string} UTC string for given offset. * @private */ goog.locale.TimeZone.composeUTCString_= function (offset){ if (offset== 0) { return 'UTC'; } var parts= ['UTC', offset< 0 ? '+' : '-']; offset= Math.abs(offset); parts.push(Math.floor(offset/ 60)% 100); offset= offset% 60; if (offset!= 0) { parts.push(':', offset); } return parts.join(''); } ; |
| |||
/** * TimeZone class implemented a time zone resolution and name information * source for client applications. The time zone object is initiated from * a time zone information array. Application can initiate a time zone * statically, or it may choose to initiate from a data obtained from server. * Each time zone information array is small, but the whole set of data * is too much for client application to download. If end user is allowed to * change time zone setting, dynamic retrieval should be the method to use. * In case only time zone offset is known, there is a decent fallback * that only use the time zone offset to create a TimeZone object. * A whole set of time zone information array was available under * http://go/js_locale_data. It is generated based on CLDR and * Olson time zone data base (through pytz), and will be updated timely. * * @constructor * @deprecated Use goog.i18n.TimeZone. */ /** * TimeZone class implemented a time zone resolution and name information * source for client applications. The time zone object is initiated from * a time zone information object. Application can initiate a time zone * statically, or it may choose to initiate from a data obtained from server. * Each time zone information array is small, but the whole set of data * is too much for client application to download. If end user is allowed to * change time zone setting, dynamic retrieval should be the method to use. * In case only time zone offset is known, there is a decent fallback * that only use the time zone offset to create a TimeZone object. * A whole set of time zone information array was available under * http://go/js_locale_data. It is generated based on CLDR and * Olson time zone data base (through pytz), and will be updated timely. * * @constructor */ goog. [[#variable1f1528c0]].TimeZone= function ( ) { /** * The standard time zone id. * @type {string} * @private */ this.timeZoneId_; /** * The standard, non-daylight time zone offset. * @type {number} * @private */ /** * The standard, non-daylight time zone offset, in minutes WEST of UTC. * @type {number} * @private */ this.standardOffset_; /** * An array of string that can have 2 or 4 elements, long and short names for * standard time zone, and long and short names for daylight time zone if it * has daylight time transitions. * @type {Array} * @private */ /** * An array of strings that can have 2 or 4 elements. The first two elements * are the long and short names for standard time in this time zone, and the * last two elements (if present) are the long and short names for daylight * time in this time zone. * @type {Array.<string>} * @private */ this.tzNames_; /** * Daylight/standard time transition array. It lists transition points since * 1970 until some year in future. It always in pair of (transition point) + * (time zone offset adjustment) * @type {Array} * @private */ /** * This array specifies the Daylight Saving Time transitions for this time * zone. This is a flat array of numbers which are interpreted in pairs: * [time1, adjustment1, time2, adjustment2, ...] where each time is a DST * transition point given as a number of hours since 00:00 UTC, January 1, * 1970, and each adjustment is the adjustment to apply for times after the * DST transition, given as minutes EAST of UTC. * @type {Array.<number>} * @private */ this.transitions_; } ; /** * Milliseconds per hour constant. * @type {number} * @private */ /** * The number of milliseconds in an hour. * @type {number} * @private */ goog. [[#variable1f1528c0]].TimeZone.MILLISECONDS_PER_HOUR_=3600*1000; /** * Enum of time zone names. The value will be used as index of in time zone * name array. * @enum {number} * @deprecated Use goog.i18n.TimeZone.NameType. */ /** * Indices into the array of time zone names. * @enum {number} */ goog. [[#variable1f1528c0]].TimeZone.NameType= {STD_SHORT_NAME: 0, STD_LONG_NAME: 1, DLT_SHORT_NAME: 2, DLT_LONG_NAME: 3 } ; /** * This factory method creates a time zone instance. It takes either a time zone * information array or a simple timezone offset. The latter form does not offer * the same set of functionalities as first form. * * @param {number|Array} timeZoneData this parameter could take 2 types, * if it is a number, a simple TimeZone object will be created. Otherwise, * it should be a array that holds all time zone related information. * @return {goog.locale.TimeZone} A goog.locale.TimeZone object for the given * time zone data. * @deprecated Use goog.i18n.TimeZone.createTimeZone. */ /** * This factory method creates a time zone instance. It takes either an object * containing complete time zone information, or a single number representing a * constant time zone offset. If the latter form is used, DST functionality is * not available. * * @param {number|Object} timeZoneData If this parameter is a number, it should * indicate minutes WEST of UTC to be used as a constant time zone offset. * Otherwise, it should be an object with these four fields: * <ul> * <li>id: A string ID for the time zone. * <li>std_offset: The standard time zone offset in minutes EAST of UTC. * <li>names: An array of four names (standard short name, standard long * name, daylight short name, daylight long, name) * <li>transitions: An array of numbers which are interpreted in pairs: * [time1, adjustment1, time2, adjustment2, ...] where each time is * a DST transition point given as a number of hours since 00:00 UTC, * January 1, 1970, and each adjustment is the adjustment to apply * for times after the DST transition, given as minutes EAST of UTC. * </ul> * @return {goog.i18n.TimeZone} A goog.i18n.TimeZone object for the given * time zone data. */ goog. [[#variable1f1528c0]].TimeZone.createTimeZone= function (timeZoneData) { if (typeof timeZoneData=='number') { return goog. [[#variable1f1528c0]].TimeZone.createSimpleTimeZone_(timeZoneData); } var tz=new goog. [[#variable1f1528c0]].TimeZone( ); tz.timeZoneId_=timeZoneData['id']; tz.standardOffset_=-timeZoneData['std_offset']; tz.tzNames_=timeZoneData['names']; tz.transitions_=timeZoneData['transitions']; return tz; } ; /** * This factory method provides a decent fallback to create a time zone object * just based on a given time zone offset. * @param {number} timeZoneOffsetInMinutes time zone offset in minutes. * @return {goog.locale.TimeZone} A goog.locale.TimeZone object generated by * just using the time zone offset information. * @private */ /** * This factory method creates a time zone object with a constant offset. * @param {number} timeZoneOffsetInMinutes Offset in minutes WEST of UTC. * @return {goog.i18n.TimeZone} A time zone object with the given constant * offset. Note that the time zone ID of this object will use the POSIX * convention, which has a reversed sign ("Etc/GMT+8" means UTC-8 or PST). * @private */ goog. [[#variable1f1528c0]].TimeZone.createSimpleTimeZone_= function (timeZoneOffsetInMinutes) { var tz=new goog. [[#variable1f1528c0]].TimeZone( ); tz.standardOffset_=timeZoneOffsetInMinutes; tz.timeZoneId_=goog. [[#variable1f1528c0]].TimeZone.composePosixTimeZoneID_(timeZoneOffsetInMinutes); var str=goog. [[#variable1f1528c0]].TimeZone.composeUTCString_(timeZoneOffsetInMinutes); tz.tzNames_=[str,str]; tz.transitions_=[ ]; return tz; } ; /** * Generate GMT string given a time zone offset. * @param {number} offset time zone offset in minutes. * @return {string} GMT string for this offset. * @private */ /** * Generate a GMT-relative string for a constant time zone offset. * @param {number} offset The time zone offset in minutes WEST of UTC. * @return {string} The GMT string for this offset, which will indicate * hours EAST of UTC. * @private */ goog. [[#variable1f1528c0]].TimeZone.composeGMTString_= function (offset) { var parts=['GMT']; parts.push(offset<=0 ?'+' : '-'); offset=Math.abs(offset); parts.push(goog.string.padNumber(Math.floor(offset/60)%100,2),':',goog.string.padNumber(offset%60,2)); return parts.join(''); } ; /** * POSIX time zone ID as fallback. * @param {number} offset time zone offset in minutes. * @return {string} posix time zone id for given offset. * @private */ /** * Generate a POSIX time zone ID for a constant time zone offset. * @param {number} offset The time zone offset in minutes WEST of UTC. * @return {string} The POSIX time zone ID for this offset, which will indicate * hours WEST of UTC. * @private */ goog. [[#variable1f1528c0]].TimeZone.composePosixTimeZoneID_= function (offset) { if (offset==0) { return 'Etc/GMT'; } var parts=['Etc/GMT',offset<0 ?'-' : '+']; offset=Math.abs(offset); parts.push(Math.floor(offset/60)%100); offset=offset%60; if (offset!=0) { parts.push(':',goog.string.padNumber(offset,2)); } return parts.join(''); } ; /** * Generate UTC string. * @param {number} offset time zone offset in minutes. * @return {string} UTC string for given offset. * @private */ /** * Generate a UTC-relative string for a constant time zone offset. * @param {number} offset The time zone offset in minutes WEST of UTC. * @return {string} The UTC string for this offset, which will indicate * hours EAST of UTC. * @private */ goog. [[#variable1f1528c0]].TimeZone.composeUTCString_= function (offset) { if (offset==0) { return 'UTC'; } var parts=['UTC',offset<0 ?'+' : '-']; offset=Math.abs(offset); parts.push(Math.floor(offset/60)%100); offset=offset%60; if (offset!=0) { parts.push(':',offset); } return parts.join(''); } ; |
CloneAbstraction |
Parameter Index | Clone Instance | Parameter Name | Value |
---|---|---|---|
1 | 1 | [[#1f1528c0]] | locale |
1 | 2 | [[#1f1528c0]] | i18n |