<?xml version="1.0" encoding="UTF-8"?>
<NeoAppBuilderPlugIn>
  <Title>Date &amp; Time</Title>
  <Author>Luis Hernandez</Author>
  <Website>https://visualneo.com</Website>
  <EMail>info@sinlios.com</EMail>
  <Copyright>SinLios Soluciones Digitales 2018</Copyright>
  <Description>A collection of useful date and time actions.</Description>
  <Notes>This is intended as an example to show how plug-ins are created.</Notes>
  <Icon20>DateTimeIcon20.png</Icon20>
  <Icon32>DateTimeIcon32.png</Icon32>
  <CompiledName>C:\Users\sinli\OneDrive\CloudStation\visualneo\VisualNeoWeb\Plugins\DateTime\DateTime.nabp</CompiledName>
  <AutoInstall>yes</AutoInstall>
  <Code>function dtLocalDate(year,month,day,locale){
  var today  = new Date(year,month-1,day,12,30,30,30);
  returnvar=today.toLocaleDateString(locale);
  return returnvar;
};
function dtGetDate() {
  var d = new Date();
  return d.getDate();
};
function dtGetDay() {
  var d = new Date();
  return d.getDay()+1;
};
function dtGetYear() {
  var d = new Date();
  return d.getFullYear();
};
function dtDayNumToName( num ) {
  var days = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];
  return days[num];
};
function dtGetDayName() {
  var d = new Date();
  return dtDayNumToName( d.getDay() );
};
function dtGetMonthNum() {
  var d = new Date();
  return d.getMonth()+1;
};
function dtMonthNumToName( num ) {
  var days = ["January","February","March","April","May","June","July","August","September","October","November","December"];
  return days[num];
};
function dtGetMonthName() {
  var d = new Date();
  return dtMonthNumToName( d.getMonth() );
};

function stringToDate( _date, _format, _delimiter ) {
  var formatLowerCase=_format.toLowerCase();
  var formatItems=formatLowerCase.split(_delimiter);
  var dateItems=_date.split(_delimiter);
  var monthIndex=formatItems.indexOf("mm");
  var dayIndex=formatItems.indexOf("dd");
  var yearIndex=formatItems.indexOf("yyyy");
  var month=parseInt(dateItems[monthIndex]);
  month-=1;
  var formatedDate = new Date(dateItems[yearIndex],month,dateItems[dayIndex]);
  return formatedDate;
};
//examples:
//stringToDate("17/9/2014","dd/MM/yyyy","/");
//stringToDate("9-17-2014","mm-dd-yyyy","-");

function dtDateDiff( d1, d2, format ) {
  //returns number of days between two dates
  var msDay = 60*60*24*1000;
  var date1 = stringToDate( d1, format, '/' );
  var date2 = stringToDate( d2, format, '/' );
  return Math.abs(Math.floor((date2 - date1) / msDay));
};</Code>
  <Files/>
  <ActionList>
    <Action Name="dtDayNum">
      <Hint>Returns the current day of the month as a number (1-31).</Hint>
      <Params>result|VARREF|Variable to store result</Params>
      <Template>result = dtGetDate();</Template>
    </Action>
    <Action Name="dtDayName">
      <Hint>Get the current weekday name (Sunday, Monday, Tuesday...)</Hint>
      <Params>result|VARREF|Variable to store result</Params>
      <Template>result = dtGetDayName();</Template>
    </Action>
    <Action Name="dtDayNumToName">
      <Hint>Convert day number (1-7) to day name (Sunday, Monday...).</Hint>
      <Params>daynum|INTEGER|Day number (1-7);result|VARREF|Variable to store result</Params>
      <Template>result = dtDayNumToName( daynum-1 );</Template>
    </Action>
    <Action Name="dtWeekDayNum">
      <Hint>Get the current weekday as a number (1-7).</Hint>
      <Params>result|VARREF|Variable to store result</Params>
      <Template>result = dtGetDay();</Template>
    </Action>
    <Action Name="dtMonthNum">
      <Hint>Get the current month as a number (1-12).</Hint>
      <Params>result|VARREF|Variable to store result</Params>
      <Template>result = dtGetMonthNum();</Template>
    </Action>
    <Action Name="dtMonthName">
      <Hint>Get the current month name (January, February, March...).</Hint>
      <Params>result|VARREF|Variable to store result</Params>
      <Template>result = dtGetMonthName();</Template>
    </Action>
    <Action Name="dtMonthNumToName">
      <Hint>Convert month number (1-12) to month name (January, February, March...).</Hint>
      <Params>monthnum|INTEGER|Month number (1-12);result|VARREF|Variable to store result</Params>
      <Template>result = dtMonthNumToName( monthnum-1 );</Template>
    </Action>
    <Action Name="dtYear">
      <Hint>Get the current four digit year (yyyy).</Hint>
      <Params>result|VARREF|Variable to store result</Params>
      <Template>result = dtGetYear();</Template>
    </Action>
    <Action Name="DateDifference">
      <Hint>Calculate the number of days between two dates.</Hint>
      <Params>date1|STRING|First date;date2|STRING|Second date;format|STRING|Date format (mm/dd/yyyy, dd/mm/yyyy, etc.);result|VARREF|Variable to store result</Params>
      <Template>result = dtDateDiff( date1, date2, format );</Template>
    </Action>
    <Action Name="dtLocalDate">
      <Hint>Transform a date into a local date format</Hint>
      <Params>year|INTEGER|Year (YYYY);month|INTEGER|Month (MM);day|INTEGER|Day (DD);result|VARREF|Variable to store result;locale|STRING|Locale (optional) ie: en-US</Params>
      <Template>result=dtLocalDate(year,month,day,locale);</Template>
    </Action>
  </ActionList>
</NeoAppBuilderPlugIn>
