We are building a new experience for our SmartBear Community.
This site is now read-only. You can still browse and search as usual. Learn More
This site is now read-only. You can still browse and search as usual. Learn More
Hi everyone!
Up for a challenge? By completing the tasks, you can practice your skills of working with TestComplete features and also get into the TechCorner Leaderboard!
Today, we are going to work with UTC DateTime stored in an Excel file.
Task: Read the UTC DateTime in an Excel file (attached), convert the value for the PST (Pacific Standard Time) time zone and log each date in the following format: <month name> <day of month>, <full weekday name>. For example: September 8, Tuesday.
Difficulty:
Note: Find the Excel file attached.
Steps to do this:
1. Read the dates from the Excel file using one of the approaches described in https://support.smartbear.com/testcomplete/docs/testing-with/working-with-external-data-sources/excel/index.html.
2. Convert the dates using the https://support.smartbear.com/testcomplete/docs/reference/program-objects/aqdatetime/index.html methods.
3. Log the date using the https://support.smartbear.com/testcomplete/docs/reference/program-objects/aqconvert/datetimetoformatstr.html method.
Best of luck to all participants!
Task: Read the UTC DateTime in an Excel file (attached), convert the value for the PST (Pacific Standard Time) time zone and log each date in the following format: <month name> <day of month>, <full weekday name>. For example: September 8, Tuesday.
This is a solution created for [TechCorner Challenge #11]
[Jscript]
function DateFormat()
{
// Creates a driver
DDT.ExcelDriver("C:\\Challenge11\\DateTime.xls", "Sheet1");
// Iterates through records
while (! DDT.CurrentDriver.EOF())
{
//Display the date in the format <month name> <day of month>, <full weekday name>
DisplayDate();
DDT.CurrentDriver.Next();
}
// Closes the driver
DDT.CloseDriver(DDT.CurrentDriver.Name);
}
function DisplayDate()
{
for(i = 0; i < DDT.CurrentDriver.ColumnCount; i++)
var dateA =aqConvert.VarToStr(DDT.CurrentDriver.Value(i));
//Convert the date from UTC to PST
var dateB = aqDateTime.AddHours(dateA, -8);
var date = aqConvert.DateTimeToFormatStr(dateB,"%B %d, %A");
Log.Message( "The date of " + dateA + " is : " + date );
}
Task: Read the UTC DateTime in an Excel file (attached), convert the value for the PST (Pacific Standard Time) time zone and log each date in the following format: <month name> <day of month>, <full weekday name>. For example: September 8, Tuesday.
This is a solution created for [TechCorner Challenge #11]
Hi sonya_m and SiwarSayahi,
I try again.
# DelphiScript
procedure Challenge_11();
var
fileExcel, exSheet, Valx: OleVariant;
i: Integer;
begin
fileExcel := Excel.Open('C:\\Temp\DateTime.xlsx');
exSheet := fileExcel.SheetByTitle['Sheet1'];
for i := 1 to exSheet.RowCount do
begin
Valx := aqDateTime.AddHours(exSheet.Cell('A', i).Value, -8);
Log.Message(aqConvert.DateTimeToFormatStr(Valx, '%B %d, %A'));
end;
end;
Task: Read the UTC DateTime in an Excel file (attached), convert the value for the PST (Pacific Standard Time) time zone and log each date in the following format: <month name> <day of month>, <full weekday name>. For example: September 8, Tuesday.
This is a solution created for [TechCorner Challenge #11]
[Jscript]
function DateFormat()
{
// Creates a driver
DDT.ExcelDriver("C:\\Challenge11\\DateTime.xls", "Sheet1");
// Iterates through records
while (! DDT.CurrentDriver.EOF())
{
//Display the date in the format <month name> <day of month>, <full weekday name>
DisplayDate();
DDT.CurrentDriver.Next();
}
// Closes the driver
DDT.CloseDriver(DDT.CurrentDriver.Name);
}
function DisplayDate()
{
for(i = 0; i < DDT.CurrentDriver.ColumnCount; i++)
var dateA =aqConvert.VarToStr(DDT.CurrentDriver.Value(i));
//Convert the date from UTC to PST
var dateB = aqDateTime.AddHours(dateA, -8);
var date = aqConvert.DateTimeToFormatStr(dateB,"%B %d, %A");
Log.Message( "The date of " + dateA + " is : " + date );
}
Thank you for participating everyone!🙂
Hi elanto! Hmmm, looks like the dates posted to the log are not quite correct. You can check out the script by SiwarSayahi and see how this can be done and build the script from there🙂
SiwarSayahi The script works great! However, to match the task criteria fully, it should also convert UTC time to PST time. Would you like to try and improve your script this way?
sonya_m thank you for your reply, I had edited my solution.
Hi everyone, Friday aftenoon... a challenging code week just behind... trying to give a quick first attempt.
I see that something is not working properly... but now the chief is calling again and again and I have really to go... sorry..
Kind regards
E.
______________
procedure Challenge_11();
var fileExcel, exSheet, ValA1, ValA2, ValA3: OleVariant;
i: Integer;
begin
fileExcel := Excel.Open('C:\\Temp\DateTime.xlsx');
exSheet := fileExcel.SheetByTitle['Sheet1'];
for i := 1 to exSheet.RowCount do
begin
Log.Message(aqConvert.DateTimeToFormatStr(aqDateTime.GetMonth(exSheet.Cell('A', i).Value), '%B') + ' ' + IntToStr(aqDateTime.GetDay(exSheet.Cell('A', i).Value)) + ' , ' +
aqConvert.DateTimeToFormatStr(aqDateTime.GetDay(exSheet.Cell('A', i).Value), '%A'));
end;