3

我希望仅在工作日执行某个计划规则(带有通知)。即我想避免在周六和周日收到通知。如何在 YouTrack Workflow 中查看当前的星期几?

4

4 回答 4

3

使用格式,您可以获得星期几的缩写或全名。

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

或使用年-月-日文字(2014-01-05 是星期日):

var day = (created - 2014-01-05).millis / 86400000 % 7; 
if (day > 1 && day < 6) { 
  message("Work day"); 
}
于 2014-05-01T04:29:59.680 回答
2

我遇到了同样的问题,我没有发现以前的解决方案可读。我实施的解决方案:

var today = now.format(utc).substring(0, 3); 
if (today == "Mon" || today == "Tue" || today == "Wed" || today == "Thu" || today == "Fri") { 
  message("Work day!"); 
}
于 2014-07-07T09:57:02.163 回答
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()今天是工作日还是周末。

于 2013-10-09T08:48:46.520 回答
0

可能是专门用于避免周末的最短解决方案,因为周六和周日是唯一以大写“S”开头的日子:

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

/e:正如 Artem 正确指出的那样,这可能必须采用或不适用于某些本地化 - 它至少适用于德语和英语。

于 2015-10-08T15:12:29.113 回答