2013-05-13 129 views
0

我與WODM規則設計V7.5工作,我XOMXSD字符串到日期+治療+日期字符串

我應該與當前日期比較交易的日期,所以如果客戶進行交易,他的賬戶的到期日應該增加一年!

日期在我XOM字符串,所以在物料清單XOM映射我BOM一部分,我創建了2種方法:

  • 一個返回的實際日期作爲字符串,形容爲:今天的日曆上

    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
    Date date = new Date(); 
    String s = dateFormat.format(date); 
    return s; 
    
  • 一個接受一個字符串,將其轉換爲日期格式,加1年,並返回一個字符串,語言表達爲:{此} NewDate({0})

    String[] splitdata = d1.split("-"); 
    int month = Integer.parseInt(splitdata[0]); 
    int day = Integer.parseInt(splitdata[1]); 
    int year = Integer.parseInt(splitdata[2]); 
    Calendar cal = Calendar.getInstance(); 
    cal.set(year, month, day); 
    Date date = cal.getTime(); 
    date.setYear(date.getYear() + 1); 
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
    String s = dateFormat.format(date); 
    return s; 
    

規則如下:

definitions 
set 'variable1' to calendar NewDate (the transaction date of transaction) ; 
if 
    the transaction date of transaction is today on the calendar 
    then 
     set the expiration date of account to variable1 ; 

我輸入交易日期是這樣的:「2013年5月13日」,我期待:在到期「2014年5月13日」日期變量,但我得到這0181-10-05

任何人都可以幫忙嗎?謝謝。

回答

2

您的分割字符串的方法是錯誤的,因爲將年份作爲第一個字段輸入,並且您試圖從該字段獲取日期,即字段的順序很重要。

從本質上講,你的代碼應該包含(注意索引):

int month=Integer.parseInt(splitdata[1]); 
int day=Integer.parseInt(splitdata[2]); 
int year=Integer.parseInt(splitdata[0]);