正在 JSON IBM Watson Assistant 中计算年龄
Calculating age in JSON IBM Watson Assistant
我在 Watson 的 JSON 编辑器中执行简单的日期计算时遇到一些困难。我有一个已知值,它是一个日期:2018 年 7 月 27 日,我需要做的是根据当前日期计算并输出以月和日为单位的年龄。我试图根据表达式语言方法中给出的示例来解决这个问题,但我一直没有成功。
我需要做的是将 (new Date(2019, 2, 13)).getTime() 替换为类似 today() 的内容,以便在有人询问时可以实时计算月龄对于年龄,我尝试用 Today() 替换它,但它会导致错误...
{
"context": {
"days": "<? (((new Date(2019, 2, 13)).getTime() - (new Date(2018, 7, 29)).getTime()) / (1000 * 60 * 60 * 24)) / 30 ?>"
},
"output": {
"generic": [
{
"values": [
{
"text": "Abby is <? $days ?> months old."
},
{
"text": "The wonderful and beautiful Abbygale is <? $days ?>months old."
},
{
"text": "The incredibly smart and savvy Abby is <? $days ?> months old."
}
],
"response_type": "text",
"selection_policy": "sequential"
}
]
}
}
将您的代码日更改为月,以便更精确。
请注意,SpEL 使用 Java Date,因此 2018 年 7 月 27 日是 new Date(118,6,27)
。
所以更改后的解决方案将是:
{
"context": {
"months": "<? (new Date().getYear() * 12 + new Date().getMonth()) - (new Date(118,6,27).getYear() * 12 + new Date(118,6,27).getMonth()) + 1 ?>"
},
"output": {
"generic": [
{
"values": [
{
"text": "Abby is <? $months ?> months old."
},
{
"text": "The wonderful and beautiful Abbygale is <? $months ?>months old."
},
{
"text": "The incredibly smart and savvy Abby is <? $months ?> months old."
}
],
"response_type": "text",
"selection_policy": "sequential"
}
]
}
}
我在 Watson 的 JSON 编辑器中执行简单的日期计算时遇到一些困难。我有一个已知值,它是一个日期:2018 年 7 月 27 日,我需要做的是根据当前日期计算并输出以月和日为单位的年龄。我试图根据表达式语言方法中给出的示例来解决这个问题,但我一直没有成功。
我需要做的是将 (new Date(2019, 2, 13)).getTime() 替换为类似 today() 的内容,以便在有人询问时可以实时计算月龄对于年龄,我尝试用 Today() 替换它,但它会导致错误...
{
"context": {
"days": "<? (((new Date(2019, 2, 13)).getTime() - (new Date(2018, 7, 29)).getTime()) / (1000 * 60 * 60 * 24)) / 30 ?>"
},
"output": {
"generic": [
{
"values": [
{
"text": "Abby is <? $days ?> months old."
},
{
"text": "The wonderful and beautiful Abbygale is <? $days ?>months old."
},
{
"text": "The incredibly smart and savvy Abby is <? $days ?> months old."
}
],
"response_type": "text",
"selection_policy": "sequential"
}
]
}
}
将您的代码日更改为月,以便更精确。
请注意,SpEL 使用 Java Date,因此 2018 年 7 月 27 日是 new Date(118,6,27)
。
所以更改后的解决方案将是:
{
"context": {
"months": "<? (new Date().getYear() * 12 + new Date().getMonth()) - (new Date(118,6,27).getYear() * 12 + new Date(118,6,27).getMonth()) + 1 ?>"
},
"output": {
"generic": [
{
"values": [
{
"text": "Abby is <? $months ?> months old."
},
{
"text": "The wonderful and beautiful Abbygale is <? $months ?>months old."
},
{
"text": "The incredibly smart and savvy Abby is <? $months ?> months old."
}
],
"response_type": "text",
"selection_policy": "sequential"
}
]
}
}