2013-10-07 28 views

回答

2

沒有內置定義一週中的當前天的YouTrack工作流程機制,但簡單的解決方法可以做到這一點:

schedule rule day of week 

daily at 10:00:00 [for all issues] { 
    var monday = {issue: A-1}.created - 1 day; 

    while (i < 50) { 
    if (monday + (i * 7) days < now && now < monday + (i * 7 + 5) days) { 
     //now is the work day 
    } 
} 

問題A-1是在星期二創建了一個示例的問題,所以{issue: A-1}.created - 1 day是指Monday

while週期查找當前周,if()定義今天是工作日還是週末。

+0

應該定義「我」然後遞增嗎? –

+0

我也在考慮這樣的默默無聞是否值得:) –

3

使用格式可以得到星期幾縮寫或全名。

var dayOfWeekAbr = now.format(#E); 
var dayOfWeek = now.format(#EEEE); 

或者用年,月,日文本(2014年1月5日是星期天):

var day = (created - 2014-01-05).millis/86400000 % 7; 
if (day > 1 && day < 6) { 
    message("Work day"); 
} 
+0

有沒有一些可以看到所有日期格式選項的參考? 我只找到http://confluence.jetbrains.com/display/YTD5/Workflow+Language+Quick+Reference,但它只是一個概述。 我問的原因是因爲在雲Youtrack中很難測試工作流腳本,因爲我不想搞亂我們的生產設置。 I.e.是否有格式選項可以返回星期幾的數字? –

+2

認爲使用格式你不能採取星期幾的號碼。我猜格式字符串是[gwt DateTimeFormat]的子集(http://www.gwtproject.org/javadoc/latest/com/google/gwt/i18n/client/DateTimeFormat.html) – ikovrigin

2

我面臨着同樣的問題,我沒有找到以前的解決方案可讀。 我實現的解決方案:

var today = now.format(utc).substring(0, 3); 
if (today == "Mon" || today == "Tue" || today == "Wed" || today == "Thu" || today == "Fri") { 
    message("Work day!"); 
} 
0

可能避免週末,因爲週六和週日特別是最短的解決方案是用一個大寫的「S」開頭的只有天:

if(!now.format(#E).startsWith("S", opts)) {}

/e:正如Artem正確指出的那樣,這可能必須通過或不適用於某些本地化 - 至少適用於德語和英語。

+0

有趣的想法,但可能存在本地化問題用這種方法:) –

相關問題