CloneSet59


Previous CloneSetNext CloneSetBack to Main Report
Clone
Mass
Clones in
CloneSet
Parameter
Count
Clone
Similarity
Syntax Category
[Sequence Length]
130230.995SourceElements[2]
Clone AbstractionParameter Bindings
Clone Instance
(Click to see clone)
Line CountSource Line
Source File
1131976
Closure/closure/goog/i18n/datetimeparse.js
2130926
Closure/closure/goog/locale/datetimeparse.js
Clone Instance
1
Line Count
131
Source Line
976
Source File
Closure/closure/goog/i18n/datetimeparse.js

/**
 * 2 digit year special handling. Assuming for example that the
 * defaultCenturyStart is 6/18/1903. This means that two-digit years will be
 * forced into the range 6/18/1903 to 6/17/2003. As a result, years 00, 01, and
 * 02 correspond to 2000, 2001, and 2002. Years 04, 05, etc. correspond
 * to 1904, 1905, etc. If the year is 03, then it is 2003 if the
 * other fields specify a date before 6/18, or 1903 if they specify a
 * date afterwards. As a result, 03 is an ambiguous year. All other
 * two-digit years are unambiguous.
 *
 * @param {number} year 2 digit year value before adjustment.
 * @return {number} disambiguated year.
 * @private
 */
goog.i18n.DateTimeParse.MyDate_.prototype.setTwoDigitYear_=  function (year)
{
  var now=  new Date( );
  var defaultCenturyStartYear=
      now.getFullYear( )- goog.i18n.DateTimeParse.ambiguousYearCenturyStart;
  var ambiguousTwoDigitYear=  defaultCenturyStartYear%  100;
  this.ambiguousYear=  (year==  ambiguousTwoDigitYear);
  year+=  Math.floor(defaultCenturyStartYear/  100)*  100+
            (year<  ambiguousTwoDigitYear
             ?                              100
             :                                    0);
  return this.year=  year;
} ;
/**
 * Based on the fields set, fill a Date object. For those fields that not
 * set, use the passed in date object's value.
 *
 * @param {Date} date Date object to be filled.
 * @param {boolean} validation If true, input string will be checked to make
 *     sure it is valid.
 *
 * @return {boolean} false if fields specify a invalid date.
 * @private
 */
goog.i18n.DateTimeParse.MyDate_.prototype.calcDate_=
    function (date, validation){
  // year 0 is 1 BC, and so on.
  if (this.era!=  undefined
      &&                       this.year!=  undefined
      &&this.era==  0
      &&               this.year>  0) {
    this.year=  -(this.year-  1);
                                      }
  if (this.year!=  undefined) {
    date.setFullYear(this.year);
                              }
  // The setMonth and setDate logic is a little tricky. We need to make sure
  // day of month is smaller enough so that it won't cause a month switch when
  // setting month. For example, if data in date is Nov 30, when month is set
  // to Feb, because there is no Feb 30, JS adjust it to Mar 2. So Feb 12 will
  // become  Mar 12.
  var orgDate=  date.getDate( );
  date.setDate(1); // every month has a 1st day, this can actually be anything
                   // less than 29.

  if (this.month!=  undefined) {
    date.setMonth(this.month);
                               }

  if (this.day!=  undefined) {
    date.setDate(this.day);
                             }
  else   {
    date.setDate(orgDate);
         }
  if (this.hours==  undefined) {
    this.hours=  date.getHours( );
                               }

  // adjust ampm
  if (this.ampm!=  undefined
      &&                        this.ampm>  0) {
    if (this.hours<  12) {
      this.hours+=  12;
                         }
                                               }
  date.setHours(this.hours);
  if (this.minutes!=  undefined) {
    date.setMinutes(this.minutes);
                                 }

  if (this.seconds!=  undefined) {
    date.setSeconds(this.seconds);
                                 }

  if (this.milliseconds!=  undefined) {
    date.setMilliseconds(this.milliseconds);
                                      }

  // If validation is needed, verify that the uncalculated date fields
  // match the calculated date fields.  We do this before we set the
  // timezone offset, which will skew all of the dates.
  //
  // Don't need to check the day of week as it is guaranteed to be
  // correct or return false below.
  if (validation
      &&(this.year!=  undefined
         &&                        this.year!=  date.getFullYear( )
         ||this.month!=  undefined
           &&                         this.month!=  date.getMonth( )
         ||this.day!=  undefined
           &&                       this.day!=  date.getDate( )
         ||this.hours>=  24
         ||                  this.minutes>=  60
         ||                                        this.seconds>=  60
         ||this.milliseconds>=  1000))
                                   {
    return false;
                                   }
  // adjust time zone
  if (this.tzOffset!=  undefined) {
    var offset=  date.getTimezoneOffset( );
    date.setTime(date.getTime( )+ (this.tzOffset-  offset)*  60*  1000);
                                  }
  // resolve ambiguous year if needed
  if (this.ambiguousYear) { // the two-digit year == the default start year
    var defaultCenturyStart=  new Date( );
    defaultCenturyStart.setFullYear(
        defaultCenturyStart.getFullYear( )-
        goog.i18n.DateTimeParse.ambiguousYearCenturyStart);
    if (date.getTime( )< defaultCenturyStart.getTime( )){
      date.setFullYear(defaultCenturyStart.getFullYear( )+ 100);
                                                        }
                          }
  // dayOfWeek, validation only
  if (this.dayOfWeek!=  undefined) {
    if (this.day==  undefined) {
      // adjust to the nearest day of the week
      var adjustment=  (7+  this.dayOfWeek-  date.getDay( ))% 7;
      if (adjustment>  3) {
        adjustment-=  7;
                          }
      var orgMonth=  date.getMonth( );
      date.setDate(date.getDate( )+ adjustment);

      // don't let it switch month
      if (date.getMonth( )!= orgMonth) {
        date.setDate(date.getDate( )+ (adjustment>  0
                                       ?                -7
                                       :                     7));
                                       }
                               }
    else   if (this.dayOfWeek!=  date.getDay( )){
      return false;
                                                }
                                   }
  return true;
                               } ;


Clone Instance
2
Line Count
130
Source Line
926
Source File
Closure/closure/goog/locale/datetimeparse.js

/**
 * 2 digit year special handling. Assuming for example that the
 * defaultCenturyStart is 6/18/1903. This means that two-digit years will be
 * forced into the range 6/18/1903 to 6/17/2003. As a result, years 00, 01, and
 * 02 correspond to 2000, 2001, and 2002. Years 04, 05, etc. correspond
 * to 1904, 1905, etc. If the year is 03, then it is 2003 if the
 * other fields specify a date before 6/18, or 1903 if they specify a
 * date afterwards. As a result, 03 is an ambiguous year. All other
 * two-digit years are unambiguous.
 *
 * @param {number} year 2 digit year value before adjustment.
 * @return {number} disambiguated year.
 * @private
 */
goog.locale.DateTimeParse.MyDate_.prototype.setTwoDigitYear_=  function (year)
{
  var now=  new Date( );
  var defaultCenturyStartYear=
      now.getFullYear( )- goog.locale.DateTimeParse.ambiguousYearCenturyStart;
  var ambiguousTwoDigitYear=  defaultCenturyStartYear%  100;
  this.ambiguousYear=  (year==  ambiguousTwoDigitYear);
  year+=  Math.floor(defaultCenturyStartYear/  100)*  100+
            (year<  ambiguousTwoDigitYear
             ?                              100
             :                                    0);
  return this.year=  year;
} ;
/**
 * Based on the fields set, fill a Date object. For those fields that not
 * set, use the passed in date object's value.
 *
 * @param {Date} date Date object to be filled.
 * @param {boolean} validation If true, input string will be checked to make
 *     sure it is valid.
 *
 * @return {boolean} false if fields specify a invalid date.
 * @private
 */
goog.locale.DateTimeParse.MyDate_.prototype.calcDate_=
    function (date, validation){
  // year 0 is 1 BC, and so on.
  if (this.era!=  undefined
      &&                       this.year!=  undefined
      &&this.era==  0
      &&               this.year>  0) {
    this.year=  -(this.year-  1);
                                      }
  if (this.year!=  undefined) {
    date.setFullYear(this.year);
                              }
  // The setMonth and setDate logic is a little tricky. We need to make sure
  // day of month is smaller enough so that it won't cause a month switch when
  // setting month. For example, if data in date is Nov 30, when month is set
  // to Feb, because there is no Feb 30, JS adjust it to Mar 2. So Feb 12 will
  // become  Mar 12.
  var org_date=  date.getDate( );
  date.setDate(1); // every month has a 1st day, this can actually be anything
                   // less than 29.

  if (this.month!=  undefined) {
    date.setMonth(this.month);
                               }

  if (this.day!=  undefined) {
    date.setDate(this.day);
                             }
  else   {
    date.setDate(org_date);
         }
  if (this.hours==  undefined) {
    this.hours=  date.getHours( );
                               }

  // adjust ampm
  if (this.ampm!=  undefined
      &&                        this.ampm>  0) {
    if (this.hours<  12) {
      this.hours+=  12;
                         }
                                               }
  date.setHours(this.hours);
  if (this.minutes!=  undefined) {
    date.setMinutes(this.minutes);
                                 }

  if (this.seconds!=  undefined) {
    date.setSeconds(this.seconds);
                                 }

  if (this.milliseconds!=  undefined) {
    date.setMilliseconds(this.milliseconds);
                                      }

  // If validation is needed, verify that the uncalculated date fields
  // match the calculated date fields.  We do this before we set the
  // timezone offset, which will skew all of the dates.
  //
  // Don't need to check the day of week as it is guaranteed to be
  // correct or return false below.
  if (validation
      &&(this.year!=  undefined
         &&                        this.year!=  date.getFullYear( )
         ||this.month!=  undefined
           &&                         this.month!=  date.getMonth( )
         ||this.dayOfMonth!=  undefined
           &&                              this.dayOfMonth!=  date.getDate( )
         ||this.hours>=  24
         ||                  this.minutes>=  60
         ||                                        this.seconds>=  60
         ||this.milliseconds>=  1000))
                                   {
    return false;
                                   }
  // adjust time zone
  if (this.tzOffset!=  undefined) {
    var offset=  date.getTimezoneOffset( );
    date.setTime(date.getTime( )+ (this.tzOffset-  offset)*  60*  1000);
                                  }
  // resolve ambiguous year if needed
  if (this.ambiguousYear) { // the two-digit year == the default start year
    var defaultCenturyStart=  new Date( );
    defaultCenturyStart.setFullYear(
        defaultCenturyStart.getFullYear( )-
        goog.locale.DateTimeParse.ambiguousYearCenturyStart);
    if (date.getTime( )< defaultCenturyStart.getTime( )){
      date.setFullYear(defaultCenturyStart.getFullYear( )+ 100);
                                                        }
                          }
  // dayOfWeek, validation only
  if (this.dayOfWeek!=  undefined) {
    if (this.day==  undefined) {
      // adjust to the nearest day of the week
      var adjustment=  (7+  this.dayOfWeek-  date.getDay( ))% 7;
      if (adjustment>  3) {
        adjustment-=  7;
                          }
      var orgMonth=  date.getMonth( );
      date.setDate(date.getDate( )+ adjustment);

      // don't let it switch month
      if (date.getMonth( )!= orgMonth) {
        date.setDate(date.getDate( )+ (adjustment>  0
                                       ?                -7
                                       :                     7));
                                       }
                               }
    else   if (this.dayOfWeek!=  date.getDay( )){
      return false;
                                                }
                                   }
  return true;
                               } ;


Clone AbstractionParameter Count: 3Parameter Bindings

/**
 * 2 digit year special handling. Assuming for example that the
 * defaultCenturyStart is 6/18/1903. This means that two-digit years will be
 * forced into the range 6/18/1903 to 6/17/2003. As a result, years 00, 01, and
 * 02 correspond to 2000, 2001, and 2002. Years 04, 05, etc. correspond
 * to 1904, 1905, etc. If the year is 03, then it is 2003 if the
 * other fields specify a date before 6/18, or 1903 if they specify a
 * date afterwards. As a result, 03 is an ambiguous year. All other
 * two-digit years are unambiguous.
 *
 * @param {number} year 2 digit year value before adjustment.
 * @return {number} disambiguated year.
 * @private
 */
goog. [[#variable5de0b1c0]].DateTimeParse.MyDate_.prototype.setTwoDigitYear_= function (year)
                                                                              { var now=new Date( );
                                                                                var defaultCenturyStartYear=now.getFullYear( )-goog. [[#variable5de0b1c0]].DateTimeParse.ambiguousYearCenturyStart;
                                                                                var ambiguousTwoDigitYear=defaultCenturyStartYear%100;
                                                                                this.ambiguousYear=(year==ambiguousTwoDigitYear);
                                                                                year+=Math.floor(defaultCenturyStartYear/100)*100+(year<ambiguousTwoDigitYear
                                                                                                                                   ?100
                                                                                                                                   : 0);
                                                                                return this.year=year;
                                                                              } ;
/**
 * Based on the fields set, fill a Date object. For those fields that not
 * set, use the passed in date object's value.
 *
 * @param {Date} date Date object to be filled.
 * @param {boolean} validation If true, input string will be checked to make
 *     sure it is valid.
 *
 * @return {boolean} false if fields specify a invalid date.
 * @private
 */
goog. [[#variable5de0b1c0]].DateTimeParse.MyDate_.prototype.calcDate_= function (date,validation)
                                                                       {
                                                                         // year 0 is 1 BC, and so on.
                                                                         if (this.era!=undefined
                                                                             && this.year!=undefined
                                                                             && this.era==0
                                                                             && this.year>0)
                                                                           { this.year=-(this.year-1);
                                                                           }
                                                                         if (this.year!=undefined)
                                                                           { date.setFullYear(this.year);
                                                                           }
                                                                         // The setMonth and setDate logic is a little tricky. We need to make sure
                                                                         // day of month is smaller enough so that it won't cause a month switch when
                                                                         // setting month. For example, if data in date is Nov 30, when month is set
                                                                         // to Feb, because there is no Feb 30, JS adjust it to Mar 2. So Feb 12 will
                                                                         // become  Mar 12.
                                                                         var [[#variable5de0b0e0]]=date.getDate( );
                                                                         date.setDate(1); // every month has a 1st day, this can actually be anything
                                                                         // less than 29.
                                                                         if (this.month!=undefined)
                                                                           { date.setMonth(this.month);
                                                                           }
                                                                         if (this.day!=undefined)
                                                                           { date.setDate(this.day);
                                                                           }
                                                                         else
                                                                           { date.setDate( [[#variable5de0b0e0]]);
                                                                           }
                                                                         if (this.hours==undefined)
                                                                           { this.hours=date.getHours( );
                                                                           }
                                                                         // adjust ampm
                                                                         if (this.ampm!=undefined
                                                                             && this.ampm>0)
                                                                           { if (this.hours<12)
                                                                               { this.hours+=12;
                                                                               }
                                                                           }
                                                                         date.setHours(this.hours);
                                                                         if (this.minutes!=undefined)
                                                                           { date.setMinutes(this.minutes);
                                                                           }
                                                                         if (this.seconds!=undefined)
                                                                           { date.setSeconds(this.seconds);
                                                                           }
                                                                         if (this.milliseconds!=undefined)
                                                                           { date.setMilliseconds(this.milliseconds);
                                                                           }
                                                                         // If validation is needed, verify that the uncalculated date fields
                                                                         // match the calculated date fields.  We do this before we set the
                                                                         // timezone offset, which will skew all of the dates.
                                                                         //
                                                                         // Don't need to check the day of week as it is guaranteed to be
                                                                         // correct or return false below.
                                                                         if (validation
                                                                             && (this.year!=undefined
                                                                                 && this.year!=date.getFullYear( )
                                                                                 || this.month!=undefined
                                                                                    && this.month!=date.getMonth( )
                                                                                 || this. [[#variable5de0b000]]!=undefined
                                                                                    && this. [[#variable5de0b000]]!=date.getDate( )
                                                                                 || this.hours>=24
                                                                                 || this.minutes>=60
                                                                                 || this.seconds>=60
                                                                                 || this.milliseconds>=1000))
                                                                           { return false;
                                                                           }
                                                                         // adjust time zone
                                                                         if (this.tzOffset!=undefined)
                                                                           { var offset=date.getTimezoneOffset( );
                                                                             date.setTime(date.getTime( )+(this.tzOffset-offset)*60*1000);
                                                                           }
                                                                         // resolve ambiguous year if needed
                                                                         if (this.ambiguousYear)
                                                                           { // the two-digit year == the default start year
                                                                             var defaultCenturyStart=new Date( );
                                                                             defaultCenturyStart.setFullYear(defaultCenturyStart.getFullYear( )-goog. [[#variable5de0b1c0]].DateTimeParse.ambiguousYearCenturyStart);
                                                                             if (date.getTime( )<defaultCenturyStart.getTime( ))
                                                                               { date.setFullYear(defaultCenturyStart.getFullYear( )+100);
                                                                               }
                                                                           }
                                                                         // dayOfWeek, validation only
                                                                         if (this.dayOfWeek!=undefined)
                                                                           { if (this.day==undefined)
                                                                               {
                                                                                 // adjust to the nearest day of the week
                                                                                 var adjustment=(7+this.dayOfWeek-date.getDay( ))%7;
                                                                                 if (adjustment>3)
                                                                                   { adjustment-=7;
                                                                                   }
                                                                                 var orgMonth=date.getMonth( );
                                                                                 date.setDate(date.getDate( )+adjustment);
                                                                                 // don't let it switch month
                                                                                 if (date.getMonth( )!=orgMonth)
                                                                                   { date.setDate(date.getDate( )+(adjustment>0
                                                                                                                   ?-7
                                                                                                                   : 7));
                                                                                   }
                                                                               }
                                                                             else
                                                                               if (this.dayOfWeek!=date.getDay( ))
                                                                                 { return false;
                                                                                 }
                                                                           }
                                                                         return true;
                                                                       } ;
 

CloneAbstraction
Parameter Bindings
Parameter
Index
Clone
Instance
Parameter
Name
Value
11[[#5de0b1c0]]
locale 
12[[#5de0b1c0]]
i18n 
21[[#5de0b0e0]]
org_date 
22[[#5de0b0e0]]
orgDate 
31[[#5de0b000]]
dayOfMonth 
32[[#5de0b000]]
day