如何在 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 中查看星期几的主要内容,如果未能解决你的问题,请参考以下文章