Forum Discussion

DainiusA's avatar
DainiusA
Contributor
3 years ago

(aqDateTime["Today"](), "%Y%m%d") -1); problem

TesComplete 14.01 version:

 

Code:

var DateYesterday = (aqConvert["DateTimeToFormatStr"](aqDateTime["Today"](), "%Y%m%d") -1);

Log["Message"]("Date inputed: " + (aqConvert["DateTimeToFormatStr"](aqDateTime["Today"](), "%Y%m%d") -1));

Output:

 

Date inputed: 20211200 

 

Region and Language are set to Ukraine.

Anyone knows how to deal with this problem in the future ?

  • Hi DainiusA - 

     

    It looks to me like you are trying to get yesterdays date - please see a function here:

    https://support.smartbear.com/testcomplete/docs/scripting/working-with/dates/cscript.html#Tomorrow

    function YesterdayDate()
    {
      // Obtain the current date
      var CurrentDate = aqDateTime.Today();

      // Convert the date/time value to a string and post it to the log
      Today = aqConvert["DateTimeToStr"](CurrentDate);
      Log["Message"]("Today is " + Today);

      // Calculate the yesterday’s date, convert the returned date to a string and post this string to the log
      YesterdayDate = aqDateTime["AddDays"](CurrentDate, -1);
      ConvertedYesterdayDate = aqConvert["DateTimeToStr"](YesterdayDate);
      Log["Message"]("Yesterday was " + ConvertedYesterdayDate);
    }

     

    Let me know if this is not what you are trying to do or if you have questions.

     

    Emma

    • DainiusA's avatar
      DainiusA
      Contributor

       

      Ok this one works until i try to change the format of the date

       

      YesterdayDate = aqDateTime["AddDays"](CurrentDate,"%Y%m%d" -1);

       

      I get an error Overflow on this one. Maybe I am doing it in some kind of wrong order ?

      • ebarbera's avatar
        ebarbera
        Staff

        Hi DainiusA  - 

         

        I believe this is the code you are looking for : Log["Message"](aqConvert["DateTimeToFormatStr"](YesterdayDate, "%Y%m%d"));

         

        Let me know if this helps. 

         

        Emma

  • Hi,

    What is the end goal here? Maybe there is a easier pre-built method.

    Best,
    Matt

    • DainiusA's avatar
      DainiusA
      Contributor

      Hello, Matt,

       

      The end goal is that I have a  keyboard  form in which 

      ineed to press the numbers accordingly the yesterday date and today date:

      From:

       

      To:

       

       

      The full script that I wrote for it to work:

       

      //USEUNIT KeypadNumbers


      function SeniorCashierCoordinatesDateClick()
      {
      var DateYesterday = (aqConvert["DateTimeToFormatStr"](aqDateTime["Today"](), "%Y%m%d") -1);
      var DateToday = (aqConvert["DateTimeToFormatStr"](aqDateTime["Today"](), "%Y%m%d"));

      Log["Message"]("Date inputed: " + (aqConvert["DateTimeToFormatStr"](aqDateTime["Today"](), "%Y%m%d") -1));
      for (var i = 0; i < aqString["GetLength"](DateYesterday); i++)
      {
      PressNumber( aqString["GetChar"](DateYesterday, i));
      }
      ClickOk()

      Log["Message"]("Date inputed: " + aqConvert["DateTimeToFormatStr"](aqDateTime["Today"](), "%Y%m%d") )
      for (var i = 0; i < aqString["GetLength"](DateToday); i++)
      {
      PressNumber( aqString["GetChar"](DateToday, i));
      }
      ClickOk()
      }

       

      It works for me perfectly on any other day. But I have an issue then it comes to the first day of the month