如何在 mule 中比较仅包含月份和年份的两个日期

问题描述 投票:0回答:1

我的场景是检查月份和年份(以日期值表示)是否小于当前月份和年份(以当前日期值表示)。

我需要实现的条件是这样的

if source-month&year  < current-month&year Yes else No 

场景 1:当前日期 = 03/29/2024 (MM/dd/yyyy),源传入日期 = 03/01/2021 (MM/dd/yyyy)。在这种情况下,它应该给我是

场景 2:当前日期 = 03/29/2024 (MM/dd/yyyy),源传入日期 = 03/01/2024 (MM/dd/yyyy)。在这种情况下,它应该给我“否”。

我尝试使用 .month 和 .year 但它总是给出结果为 No

mule dataweave mulesoft mule4
1个回答
0
投票

    Try this and let me know if it is working as you expected .

%dw 2.0
output application/json

var currentDate = now()
var currentYear = currentDate.year
var currentMonth = currentDate.month
var inputDate = "03/01/2024" as String {format: "MM/dd/yyyy"}
var inputYear = (inputDate as Date {format: "MM/dd/yyyy"}).year
var inputMonth = (inputDate as Date {format: "MM/dd/yyyy"}).month

---
if (inputYear < currentYear or (inputYear == currentYear and inputMonth < currentMonth)) 
    "Yes"
else 
    "No"

Try this and let me know if it is working as you expected .

%dw 2.0
output application/json

var currentDate = now()
var currentYear = currentDate.year
var currentMonth = currentDate.month
var inputDate = "03/01/2024" as String {format: "MM/dd/yyyy"}
var inputYear = (inputDate as Date {format: "MM/dd/yyyy"}).year
var inputMonth = (inputDate as Date {format: "MM/dd/yyyy"}).month

---
if (inputYear < currentYear or (inputYear == currentYear and inputMonth < currentMonth)) 
    "Yes"
else 
    "No"

© www.soinside.com 2019 - 2024. All rights reserved.