如何在 Youtrack Workflow 中查看星期几

Posted

技术标签:

【中文标题】如何在 Youtrack Workflow 中查看星期几【英文标题】:How can one check today's day of the week in Youtrack Workflow 【发布时间】:2013-10-07 11:33:45 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

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"); 

【讨论】:

是否有一些可以查看所有日期格式选项的参考资料?我只找到了 confluence.jetbrains.com/display/YTD5/… ,但这只是一个概述。我问的原因是因为很难使用云中的 Youtrack 测试工作流脚本,因为我不想弄乱我们的生产设置。 IE。是否有可以返回星期几的格式选项? 认为使用格式不能取星期几。我猜格式字符串是gwt DateTimeFormat 的子集【参考方案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() 定义今天是工作日还是周末。

【讨论】:

是否应该定义“i”然后递增? 我也在考虑这样的默默无闻是否值得:)【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

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

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

【讨论】:

有趣的想法,但这种方法可能存在本地化问题 :)

以上是关于如何在 Youtrack Workflow 中查看星期几的主要内容,如果未能解决你的问题,请参考以下文章

如何在 YouTrack 中设置深色主题

您如何在 YouTrack 中批量更新问题?

如何在 Youtrack 的敏捷板上配置任务卡? [关闭]

如何在 C# 中实现 YouTrack REST API

YouTrack 4.x - 您如何在敏捷板的泳道中按优先级对所有任务进行排序? [关闭]

如何在 Youtrack 中将问题移至 sprint