String/Date functions (WinRunner, TSL)
Parent page: Service Functions – String / WinRunner
Month Name/Number conversion
static const month_number[] = {
"JAN" = "01",
"FEB" = "02",
"MAR" = "03",
"APR" = "04",
"MAY" = "05",
"JUN" = "06",
"JUL" = "07",
"AUG" = "08",
"SEP" = "09",
"OCT" = "10",
"NOV" = "11",
"DEC" = "12"
};
###
static const month_name[] = {
"01" = "JAN",
"02" = "FEB",
"03" = "MAR",
"04" = "APR",
"05" = "MAY",
"06" = "JUN",
"07" = "JUL",
"08" = "AUG",
"09" = "SEP",
"10" = "OCT",
"11" = "NOV",
"12" = "DEC"
};
###
public function str_month_name(in number) {
if (length(number) == 1)
number = "0" & number;
return(month_name[number]);
}
###
public function str_month_number(in name) {
return(month_number[toupper(name)]);
}
Date format conversions
# From "24 Mar 2007" to "03/24/2007"
public function str_date_val(in date_str) {
auto i, s_month, d_month;
auto result;
i = match(date_str, "[A-Z,a-z][A-Z,a-z][A-Z,a-z]");
if (i==0) return("");
s_month = substr(date_str, i, 3);
d_month = month_number[toupper(s_month)];
result = d_month & "/" & substr(date_str,1,i-1) & "/" & substr(date_str,i+3);
result = str_date_align(result);
return(result);
}
#### From "Mar 24, 2007" to "03/24/2007"
public function str_date_val2(in date_str) {
auto i, s, s_month, d_month;
auto result;
auto c, mxVector[];
i = match(date_str, "[A-Z,a-z][A-Z,a-z][A-Z,a-z]");
if (i==0) return("");
c = split(date_str, mxVector, " ");
if (c != 3) return("");
s_month = mxVector[1];
d_month = month_number[toupper(s_month)];
s = substr(mxVector[2],1,length(mxVector[2])-1);
result = d_month & "/" & s & "/" & mxVector[3];
result = str_date_align(result);
return(result);
}
###
#normalize date string
public function str_date_align(in date_str) {
auto rc, c, dtArray[], result;
if (date_str == "") return("");
c = split(date_str, dtArray, "/");
if (c != 3) return("");
result = "";
if (length(dtArray[1]) == 1)
result = result & "0" & dtArray[1] & "/";
else
result = result & dtArray[1] & "/";
if (length(dtArray[2]) == 1)
result = result & "0" & dtArray[2] & "/";
else
result = result & dtArray[2] & "/";
if (length(dtArray[3]) == 2)
result = result & "20" & dtArray[3];
else
result = result & dtArray[3];
rc = match(result, "[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]");
if (rc == 0) return("");
return(result);
}
###
public function date_str2(in date_val_str) {
auto Date[];
auto result;
str_date_split(date_val_str, Date);
result = str_month_name(Date["month"]) & " " & Date["day"] & ", " & Date["year"];
return(result);
}

