DateAdd: Difference between revisions

From NSB App Studio
Jump to navigation Jump to search
JwellsNB (talk | contribs)
No edit summary
JwellsNB (talk | contribs)
Line 67: Line 67:
       dt.setDate(dt.getDate()+val); break;
       dt.setDate(dt.getDate()+val); break;
     case 'ww':
     case 'ww':
       dt.setDate(dt.getDate()+(val*7)); break;
       dt.setDate(dt.getDate()+((val+1)*7));
      break;
     case 'h':
     case 'h':
       dt.setHours(dt.getHours()+val); break;
       dt.setHours(dt.getHours()+val); break;
Line 75: Line 76:
       dt.setSeconds(dt.getSeconds()+val); break;
       dt.setSeconds(dt.getSeconds()+val); break;
   }
   }
   return dt;
   return dispDateTime(dt);
}
}


setLastDOM=function(dt,nm) {
setLastDOM=function(dt,nm) {
    while (dt.getMonth() != nm) {
  while (nm>11) {nm-=12;}
      dt.setDate(dt.getDate()-1);
  while (nm<0) {nm+=12;}
     }
  while (dt.getMonth() != nm) {
    dt.setDate(dt.getDate()-1);
  }
}
 
dispDateTime=function(dtm) {
  var tm = dtm.toString();
  var ampm = (tm.toUpperCase().indexOf('AM') > -1) ? ' AM' : ' PM';
  hr = dtm.getHours();
  if (hr < 12) {
     ampm = ' AM';
  } else if (hr > 12) {
    ampm = ' PM';
    hr -= 12;
    if (hr==12) ampm = ' AM'; //midnight
  }
  mn = '0'+dtm.getMinutes();
  mn0 = mn.substr(mn.length-2,2);
  ss = '0'+dtm.getSeconds();
  ss0 = ss.substr(ss.length-2,2);
  tm = hr+':'+mn0+':'+ss0+ampm;
  return dt.getMonth()+1+'/'+dt.getDate()+'/'+dt.getFullYear()+'  '+tm;
}
}



Revision as of 17:13, 27 May 2013

DateAdd(interval,number,date)

Description

DateAdd returns the date which is obtained by adding a specified number of date intervals to a given date. The required parameter, interval, is a string expression that specifies the type of date interval to add: see table below. The required parameter, number, is any numeric expression that specifies the number of intervals to add.The required parameter, date, can be any expression that represents a date.

Interval Values

Value Description
yyyy Year
q Quarter
m Month
y Day of year
d Day
w Weekday
ww Week of year
h Hour
n Minute
s Second

Example (Basic)

Rem DateAdd Example
'DateAdd adds date intervals to a date
Print "+10 seconds:", DateAdd("s", 10, NOW)
Print "-1 year:", DateAdd("yyyy", -1, NOW)

Example (JavaScript)

// DateAdd Example
/* DateAdd adds date intervals to a date */

Date.prototype.DateAdd = function(typ,val) {
  dt=this;
  if (!typ || val==0) return dt;
  switch (typ.toLowerCase()) {
    case 'yyyy':
      dt.setFullYear(dt.getFullYear()+val); break;
    case 'q':
      var nm = dt.getMonth()+(val*3);
      dt.setMonth(dt.getMonth()+(val*3));
      setLastDOM(dt,nm);
      break;
    case 'm':
      var nm = dt.getMonth()+val;
      dt.setMonth(dt.getMonth()+val); 
      setLastDOM(dt,nm);
      break;
    case 'y':
    case 'd':
    case 'w':
      dt.setDate(dt.getDate()+val); break;
    case 'ww':
      dt.setDate(dt.getDate()+((val+1)*7));
      break;
    case 'h':
      dt.setHours(dt.getHours()+val); break;
    case 'n':
      dt.setMinutes(dt.getMinutes()+val); break;
    case 's':
      dt.setSeconds(dt.getSeconds()+val); break;
  }
  return dispDateTime(dt);
}

setLastDOM=function(dt,nm) {
  while (nm>11) {nm-=12;}
  while (nm<0) {nm+=12;}
  while (dt.getMonth() != nm) {
    dt.setDate(dt.getDate()-1);
  }
}

dispDateTime=function(dtm) {
  var tm = dtm.toString();
  var ampm = (tm.toUpperCase().indexOf('AM') > -1) ? ' AM' : ' PM';
  hr = dtm.getHours();
  if (hr < 12) {
    ampm = ' AM';
  } else if (hr > 12) {
    ampm = ' PM';
    hr -= 12;
    if (hr==12) ampm = ' AM'; //midnight
  }
  mn = '0'+dtm.getMinutes();
  mn0 = mn.substr(mn.length-2,2);
  ss = '0'+dtm.getSeconds();
  ss0 = ss.substr(ss.length-2,2);
  tm = hr+':'+mn0+':'+ss0+ampm;
  return dt.getMonth()+1+'/'+dt.getDate()+'/'+dt.getFullYear()+'  '+tm;
}

var dt = new Date();
NSB.Print('+10 seconds: ' + dt.DateAdd('s', 10));
NSB.Print('-1 year:' + dt.DateAdd('yyyy', -1));

Output

+10 seconds:  8/18/98 10:52:54 PM
-1 year:      8/18/97 10:52:44 PM

Related Items

DateDiff, DatePart