import java.util.*;
import java.text.SimpleDateFormat;
// current date
String dateNew = today()
// tomorrow
String tomorrow = tomorrow()
// yesterday
String yesterday = yesterday()
// the day before yesterday
String theDayBeforeYesterday = theDayBeforeYesterday()
// Last Market Close
String lastMarketClose = lastMarketClose()
log.info "------> lastMarketClose : "+lastMarketClose
// Last Market Close -2 days
String lastMarketCloseMinus2Days = lastMarketCloseMinus2Days()
// Two years ago of Last Market Close -2 days
String twoYearsAgoOfLastMarketCloseMinus2Days = twoYearsAgoOfLastMarketCloseMinus2Days(lastMarketCloseMinus2Days)
// yesterday of Last Market Close
String yesterdayOfLastMarketClose = yesterdayOfLastMarketClose(lastMarketClose)
// a month ago of Last Market Close
String aMonthAgoOfLastMarketClose = aMonthAgoOfLastMarketClose(lastMarketClose)
// three months ago of Last Market Close
String threeMonthsAgoOfLastMarketClose = threeMonthsAgoOfLastMarketClose(lastMarketClose)
// three years ago of Last Market Close
String threeYearsAgoOfLastMarketClose = threeYearsAgoOfLastMarketClose(lastMarketClose)
log.info "------> threeYearsAgoOfLastMarketClose : "+threeYearsAgoOfLastMarketClose
// the last day of last week
String theLastDayOfLastWeek = theLastDayOfLastWeek()
// the last day of last month
String theLastDayOfLastMonth = theLastDayOfLastMonth()
// Get the same day of last month
String theSameDayOfLastMonth = theSameDayOfLastMonth()
// The first day of the quarter
String theFirstDayOfTheQuarter = theFirstDayOfTheQuarter()
// The last day of last quarter
String theLastDayOfLastQuarter = theLastDayOfLastQuarter(theFirstDayOfTheQuarter)
// a year ago after The last day of last quarter
String aYearAgoAfterTheLastDayOfLastQuarter = aYearAgoAfterTheLastDayOfLastQuarter(theFirstDayOfTheQuarter)
// The first day of last quarter
String theFirstDayOfLastQuarter = theFirstDayOfLastQuarter(theFirstDayOfTheQuarter)
// The last day of two quarters ago
String theLastDayOfTwoQuartersAgo = theLastDayOfTwoQuartersAgo(theLastDayOfLastQuarter)
// The first day of six months ago after two quarters
String theFirstDayOfSixMonthsAgoAfterTwoQuarters = theFirstDayOfSixMonthsAgoAfterTwoQuarters(theLastDayOfTwoQuartersAgo)
// yesterday of three months ago
String yesterdayOfThreeMonthsAgo = yesterdayOfThreeMonthsAgo()
// The first day of two months ago
String theFirstDayOfTwoMonthsAgo = theFirstDayOfTwoMonthsAgo()
// The last day of two months ago
String theLastDayOfTwoMonthsAgo = theLastDayOfTwoMonthsAgo()
// The first day of three months ago
String theFirstDayOfThreeMonthsAgo = theFirstDayOfThreeMonthsAgo()
// The first day of six months ago
String theFirstDayOfSixMonthsAgo = theFirstDayOfSixMonthsAgo()
// The first day of this year
String theFirstDayOfThisYear = theFirstDayOfThisYear()
// The last day of last year
String theLastDayOfLastYear = theLastDayOfLastYear()
// tomorrow of last year
String tomorrowOfLastYear = tomorrowOfLastYear()
// the first day of this month last year
String theFirstDayOfThisMonthLastYear = theFirstDayOfThisMonthLastYear()
// the first day of last year
String theFirstDayOfLastYear = theFirstDayOfLastYear()
// the same day of this month three years ago
String theSameDayOfThisMonthThreeYearsAgo = theSameDayOfThisMonthThreeYearsAgo()
// the first day of this month three years ago
String theFirstDayOfThisMonthThreeYearsAgo = theFirstDayOfThisMonthThreeYearsAgo()
// the first day of three years ago
String theFirstDayOfThreeYearsAgo = theFirstDayOfThreeYearsAgo()
// Set the project level property : currentDate,yesterDay,lastMonth , its value will updated with dateNew
testRunner.testCase.testSuite.project.setPropertyValue( "currentDate", dateNew )
testRunner.testCase.testSuite.project.setPropertyValue( "tomorrow", tomorrow )
testRunner.testCase.testSuite.project.setPropertyValue( "yesterday", yesterday )
testRunner.testCase.testSuite.project.setPropertyValue( "theDayBeforeYesterday", theDayBeforeYesterday )
testRunner.testCase.testSuite.project.setPropertyValue( "lastMarketClose", lastMarketClose )
testRunner.testCase.testSuite.project.setPropertyValue( "lastMarketCloseMinus2Days", lastMarketCloseMinus2Days )
testRunner.testCase.testSuite.project.setPropertyValue( "twoYearsAgoOfLastMarketCloseMinus2Days", twoYearsAgoOfLastMarketCloseMinus2Days )
testRunner.testCase.testSuite.project.setPropertyValue( "threeYearsAgoOfLastMarketClose", threeYearsAgoOfLastMarketClose )
testRunner.testCase.testSuite.project.setPropertyValue( "theDayBeforeYesterday", theDayBeforeYesterday )
testRunner.testCase.testSuite.project.setPropertyValue( "theLastDayOfLastWeek", theLastDayOfLastWeek )
testRunner.testCase.testSuite.project.setPropertyValue( "yesterdayOfLastMarketClose", yesterdayOfLastMarketClose )
testRunner.testCase.testSuite.project.setPropertyValue( "aMonthAgoOfLastMarketClose", aMonthAgoOfLastMarketClose )
testRunner.testCase.testSuite.project.setPropertyValue( "threeMonthsAgoOfLastMarketClose", threeMonthsAgoOfLastMarketClose )
testRunner.testCase.testSuite.project.setPropertyValue( "theFirstDayOfTheQuarter", theFirstDayOfTheQuarter )
testRunner.testCase.testSuite.project.setPropertyValue( "theLastDayOfLastQuarter", theLastDayOfLastQuarter )
testRunner.testCase.testSuite.project.setPropertyValue( "aYearAgoAfterTheLastDayOfLastQuarter", aYearAgoAfterTheLastDayOfLastQuarter )
testRunner.testCase.testSuite.project.setPropertyValue( "theFirstDayOfLastQuarter", theFirstDayOfLastQuarter )
testRunner.testCase.testSuite.project.setPropertyValue( "theLastDayOfTwoQuartersAgo", theLastDayOfTwoQuartersAgo )
testRunner.testCase.testSuite.project.setPropertyValue( "theFirstDayOfSixMonthsAgoAfterTwoQuarters", theFirstDayOfSixMonthsAgoAfterTwoQuarters )
testRunner.testCase.testSuite.project.setPropertyValue( "theSameDayOfLastMonth", theSameDayOfLastMonth )
testRunner.testCase.testSuite.project.setPropertyValue( "theLastDayOfLastMonth", theLastDayOfLastMonth )
testRunner.testCase.testSuite.project.setPropertyValue( "yesterdayOfThreeMonthsAgo", yesterdayOfThreeMonthsAgo )
testRunner.testCase.testSuite.project.setPropertyValue( "theFirstDayOfTwoMonthsAgo", theFirstDayOfTwoMonthsAgo )
testRunner.testCase.testSuite.project.setPropertyValue( "theLastDayOfTwoMonthsAgo", theLastDayOfTwoMonthsAgo )
testRunner.testCase.testSuite.project.setPropertyValue( "theFirstDayOfThreeMonthsAgo", theFirstDayOfThreeMonthsAgo )
testRunner.testCase.testSuite.project.setPropertyValue( "theFirstDayOfSixMonthsAgo", theFirstDayOfSixMonthsAgo )
testRunner.testCase.testSuite.project.setPropertyValue( "theFirstDayOfThisYear", theFirstDayOfThisYear )
testRunner.testCase.testSuite.project.setPropertyValue( "theLastDayOfLastYear", theLastDayOfLastYear )
testRunner.testCase.testSuite.project.setPropertyValue( "tomorrowOfLastYear", tomorrowOfLastYear )
testRunner.testCase.testSuite.project.setPropertyValue( "theFirstDayOfThisMonthLastYear", theFirstDayOfThisMonthLastYear )
testRunner.testCase.testSuite.project.setPropertyValue( "theFirstDayOfLastYear", theFirstDayOfLastYear )
testRunner.testCase.testSuite.project.setPropertyValue( "theSameDayOfThisMonthThreeYearsAgo", theSameDayOfThisMonthThreeYearsAgo )
testRunner.testCase.testSuite.project.setPropertyValue( "theFirstDayOfThisMonthThreeYearsAgo", theFirstDayOfThisMonthThreeYearsAgo )
testRunner.testCase.testSuite.project.setPropertyValue( "theFirstDayOfThreeYearsAgo", theFirstDayOfThreeYearsAgo )
//**********************************************************************Methods**************************************************************************
def today(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
str = sdf.format(lastDate.getTime());
return str;
}
def yesterday(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.DATE, -1);
str = sdf.format(lastDate.getTime());
return str;
}
def theDayBeforeYesterday(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.DATE, -2);
str = sdf.format(lastDate.getTime());
return str;
}
def theLastDayOfLastMonth(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.MONTH, -1);
lastDate.set(Calendar.DATE, 1);
lastDate.roll(Calendar.DATE, -1);
str = sdf.format(lastDate.getTime());
return str;
}
def theSameDayOfLastMonth(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.roll(Calendar.MONTH, -1);
str = sdf.format(lastDate.getTime());
return str;
}
def tomorrow(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def yesterdayOfThreeMonthsAgo(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.MONTH, -3);
lastDate.add(Calendar.DATE, -1);
str = sdf.format(lastDate.getTime());
return str;
}
def theFirstDayOfTwoMonthsAgo(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.MONTH, -2);
lastDate.set(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def theLastDayOfTwoMonthsAgo(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.MONTH, -2);
lastDate.set(Calendar.DATE, 1);
lastDate.roll(Calendar.DATE, -1);
str = sdf.format(lastDate.getTime());
return str;
}
def theFirstDayOfThreeMonthsAgo(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.MONTH, -3);
lastDate.set(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def theFirstDayOfSixMonthsAgo(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.MONTH, -6);
lastDate.set(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def tomorrowOfLastYear(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.YEAR, -1);
lastDate.add(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def theSameDayOfThisMonthThreeYearsAgo(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.YEAR, -3);
str = sdf.format(lastDate.getTime());
return str;
}
def theFirstDayOfThisMonthThreeYearsAgo(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.YEAR, -3);
lastDate.set(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def theFirstDayOfThreeYearsAgo(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.YEAR, -3);
lastDate.set(Calendar.MONTH, 0);
lastDate.set(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def theFirstDayOfThisYear(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.set(Calendar.MONTH, 0);
lastDate.set(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def theLastDayOfLastYear(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.YEAR, -1);
lastDate.set(Calendar.MONTH, 11);
lastDate.set(Calendar.DATE, 31);
str = sdf.format(lastDate.getTime());
return str;
}
def theFirstDayOfTheQuarter(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
int i = 0
int j = 0
int month = lastDate.get(Calendar.MONTH)
if (month >= 1 && month <= 3) {
j = 0;
}
if (month >= 4 && month <= 6) {
j = 3;
}
if (month >= 7 && month <= 9) {
j = 6;
}
if (month >= 10 && month <= 12) {
j = 9;
}
lastDate.set(Calendar.MONTH, j);
lastDate.set(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def theLastDayOfLastQuarter(String theFirstDayOfTheQuarter){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(theFirstDayOfTheQuarter)
Calendar lastDate = Calendar.getInstance();
lastDate.setTime(date);
lastDate.add(Calendar.MONTH, -1);
lastDate.roll(Calendar.DATE, -1);
str = sdf.format(lastDate.getTime());
return str;
}
def aYearAgoAfterTheLastDayOfLastQuarter(String theFirstDayOfTheQuarter){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(theFirstDayOfTheQuarter)
Calendar lastDate = Calendar.getInstance();
lastDate.setTime(date);
lastDate.add(Calendar.YEAR, -1);
str = sdf.format(lastDate.getTime());
return str;
}
def theFirstDayOfLastQuarter(String theFirstDayOfTheQuarter){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(theFirstDayOfTheQuarter)
Calendar lastDate = Calendar.getInstance();
lastDate.setTime(date);
lastDate.add(Calendar.MONTH, -3);
str = sdf.format(lastDate.getTime());
return str;
}
def theLastDayOfTwoQuartersAgo(String theLastDayOfLastQuarter){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(theLastDayOfLastQuarter)
Calendar lastDate = Calendar.getInstance();
lastDate.setTime(date);
lastDate.add(Calendar.MONTH, -3);
lastDate.set(Calendar.DATE, 1);
lastDate.roll(Calendar.DATE, -1);
str = sdf.format(lastDate.getTime());
return str;
}
def theFirstDayOfSixMonthsAgoAfterTwoQuarters(String theLastDayOfTwoQuartersAgo){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(theLastDayOfTwoQuartersAgo)
Calendar lastDate = Calendar.getInstance();
lastDate.setTime(date);
lastDate.add(Calendar.MONTH, -8);
lastDate.set(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def theFirstDayOfThisMonthLastYear(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.YEAR, -1);
lastDate.set(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def theFirstDayOfLastYear(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.YEAR, -1);
lastDate.set(Calendar.MONTH,0)
lastDate.set(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def theLastDayOfLastWeek(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.WEEK_OF_MONTH,-1);
lastDate.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
str = sdf.format(lastDate.getTime());
return str;
}
def lastMarketClose(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
String ss = lastDate.get(Calendar.DAY_OF_WEEK)
if ("1".equals(ss)){
lastDate.add(Calendar.WEEK_OF_MONTH,-1);
lastDate.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY)
}
if ("7".equals(ss)){
lastDate.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY)
}
str = sdf.format(lastDate.getTime());
return str;
}
def lastMarketCloseMinus2Days(){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar lastDate = Calendar.getInstance();
lastDate.add(Calendar.DATE, -2);
String ss = lastDate.get(Calendar.DAY_OF_WEEK)
if ("1".equals(ss) ){
lastDate.add(Calendar.WEEK_OF_MONTH,-1);
lastDate.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY)
}
if ("7".equals(ss)){
lastDate.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY)
}
str = sdf.format(lastDate.getTime());
return str;
}
def twoYearsAgoOfLastMarketCloseMinus2Days(String lastMarketCloseMinus2Days){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(lastMarketCloseMinus2Days)
Calendar lastDate = Calendar.getInstance();
lastDate.setTime(date);
lastDate.add(Calendar.YEAR, -2)
lastDate.add(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def yesterdayOfLastMarketClose(String lastMarketClose){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(lastMarketClose)
Calendar lastDate = Calendar.getInstance();
lastDate.setTime(date);
lastDate.add(Calendar.DATE, -1);
str = sdf.format(lastDate.getTime());
return str;
}
def aMonthAgoOfLastMarketClose(String lastMarketClose){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(lastMarketClose)
Calendar lastDate = Calendar.getInstance();
lastDate.setTime(date);
lastDate.add(Calendar.MONTH, -1)
lastDate.add(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def threeMonthsAgoOfLastMarketClose(String lastMarketClose){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(lastMarketClose)
Calendar lastDate = Calendar.getInstance();
lastDate.setTime(date);
lastDate.add(Calendar.MONTH, -3)
lastDate.add(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}
def threeYearsAgoOfLastMarketClose(String lastMarketClose){
String str = "";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(lastMarketClose)
Calendar lastDate = Calendar.getInstance();
lastDate.setTime(date);
lastDate.add(Calendar.YEAR, -3)
lastDate.add(Calendar.DATE, 1);
str = sdf.format(lastDate.getTime());
return str;
}