Ask a Question

How to find the date differences in terms of days?

SOLVED
IAmSanjay
New Contributor

How to find the date differences in terms of days?

I there way to find the date differences in terms of day?

ex. Date1 - Date2 = x days

 

1 ACCEPTED SOLUTION

Accepted Solutions
tristaanogre
Community Hero

Re: How to find the date differences in terms of days?

Did you read the whole article?

 


I quote:

"The returned time period is measured starting from the "zero date", which is 12:00 AM, December 30, 1899. However, if the period is less than one day, then the date portion is omitted. Besides, if your locale uses the 12-hour clock notation, the resulting value is displayed using "before noon" and "after noon" abbreviations (like AM/PM in English).

Because of these reasons, using the common aqConvert.DateTimeToStr method to display the TimeIntervalresults could yield quite odd results (like 12/31/1899 12:00:05 AM when the difference is 1 day and 5 seconds). This could be rather confusing for the values that reflect time duration. To avoid misunderstanding, it is better to use the dedicated method, TimeIntervalToStr, that returns a string in the D:HH:MM:SS format, which indicates the time passed since the "zero date"."

 

 

So... change your code to the following:


 

I tried this.
var currentdate = aqDateTime.Now();
var newDate = aqDateTime.AddDays(currentdate,3);
 
var res = aqConvert.TimeIntervalToStr(aqDateTime.TimeInterval(currentdate, newDate));

Log.Message('The interval is ' + res);

If you specifically want to peel out the days only, use res.split(':') to return an array of the string where the first element in the array is the number of days.


Robert Martin
[Hall of Fame]
Please consider giving a Kudo if I write good stuff
----

Why automate?  I do automated testing because there's only so much a human being can do and remain healthy.  Sleep is a requirement.  So, while people sleep, automation that I create does what I've described above in order to make sure that nothing gets past the final defense of the testing group.
I love good food, good books, good friends, and good fun.

Mysterious Gremlin Master
Vegas Thrill Rider
Extensions available

View solution in original post

3 REPLIES 3
tristaanogre
Community Hero

Re: How to find the date differences in terms of days?

Check out the following.

 

https://support.smartbear.com/testcomplete/docs/reference/program-objects/aqdatetime/timeinterval.ht...


Robert Martin
[Hall of Fame]
Please consider giving a Kudo if I write good stuff
----

Why automate?  I do automated testing because there's only so much a human being can do and remain healthy.  Sleep is a requirement.  So, while people sleep, automation that I create does what I've described above in order to make sure that nothing gets past the final defense of the testing group.
I love good food, good books, good friends, and good fun.

Mysterious Gremlin Master
Vegas Thrill Rider
Extensions available
IAmSanjay
New Contributor

Re: How to find the date differences in terms of days?

Hi tristaanogre,

 

I tried this.

var currentdate = aqDateTime.Now();

var newDate = aqDateTime.AddDays(currentdate,3);

 

var res = aqDateTime.TimeInterval(currentdate, newDate);

 

if I log this, I will get 1/2/1900 20:27:57

Log.Message("The interval as DateTime: " + aqConvert.DateTimeToStr(res));

 

What I want is the days difference which is 3 days (from Dec 30 1899 to Jan 2 1900)

How to get that 3?

tristaanogre
Community Hero

Re: How to find the date differences in terms of days?

Did you read the whole article?

 


I quote:

"The returned time period is measured starting from the "zero date", which is 12:00 AM, December 30, 1899. However, if the period is less than one day, then the date portion is omitted. Besides, if your locale uses the 12-hour clock notation, the resulting value is displayed using "before noon" and "after noon" abbreviations (like AM/PM in English).

Because of these reasons, using the common aqConvert.DateTimeToStr method to display the TimeIntervalresults could yield quite odd results (like 12/31/1899 12:00:05 AM when the difference is 1 day and 5 seconds). This could be rather confusing for the values that reflect time duration. To avoid misunderstanding, it is better to use the dedicated method, TimeIntervalToStr, that returns a string in the D:HH:MM:SS format, which indicates the time passed since the "zero date"."

 

 

So... change your code to the following:


 

I tried this.
var currentdate = aqDateTime.Now();
var newDate = aqDateTime.AddDays(currentdate,3);
 
var res = aqConvert.TimeIntervalToStr(aqDateTime.TimeInterval(currentdate, newDate));

Log.Message('The interval is ' + res);

If you specifically want to peel out the days only, use res.split(':') to return an array of the string where the first element in the array is the number of days.


Robert Martin
[Hall of Fame]
Please consider giving a Kudo if I write good stuff
----

Why automate?  I do automated testing because there's only so much a human being can do and remain healthy.  Sleep is a requirement.  So, while people sleep, automation that I create does what I've described above in order to make sure that nothing gets past the final defense of the testing group.
I love good food, good books, good friends, and good fun.

Mysterious Gremlin Master
Vegas Thrill Rider
Extensions available

View solution in original post

cancel
Showing results for 
Search instead for 
Did you mean: