想计算上月25号到次月24号的总天数 2025年1月份只有24天后面的1月份就变成正常的了

还有一个特殊情况就是只有2025年一月份存在这个情况 时间选择器在1月25之前选择 我要计算 1月1号到1月24号的总天数 其他的情况就是 我时间选择器在2月20号 那就要计算 1月25到2月24的总天数image.png

image.pngimage.png

FineReport 帆软用户Hm97F60nva 发布于 6 天前 (编辑于 6 天前
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
华莉星宸Lv7资深互助
发布于6 天前

把你上面的数据 单独做一个表

字段参考

月份   开始日期  结束日期  天数

最佳回答
0
用户k6280494Lv6资深互助
发布于6 天前

DATEDIF(DATEINMONTH(MONTHDELTA(today(),-1),25),DATEINMONTH(today(),25),"D")

最佳回答
0
snrtuemcLv8专家互助
发布于6 天前(编辑于 6 天前

假设你的是yyyy-MM-dd格式

where 1=1

${if(month(rq)=1," and 日期>='"+format(rq,"yyyy-01-01")+"' and 日期<='"+format(rq,"yyyy-MM-24")+"'",if(month(rq)=12," and 日期>='"+format(monthdelta(rq,-1),"yyyy-MM-25")+"' and 日期<='"+format(rq,"yyyy-MM-31")+"'"," and 日期>='"+format(monthdelta(rq,-1),"yyyy-MM-25")+"' and 日期<='"+format(rq,"yyyy-MM-24")+"'"))}

==========

你是计算两个天数?

那就直接

if(month($rq)=1,"24",if(month($rq)=12,"36",DATEDIF(DATEINMONTH(MONTHDELTA(today(),-1),25),DATEINMONTH(today(),24),"D")))

  • 帆软用户Hm97F60nva 帆软用户Hm97F60nva(提问者) 他这个只有今年的2025年1月份是24天 明年的1月份就要变成正常的12月25-1月的24了
    2025-01-07 10:35 
  • snrtuemc snrtuemc 回复 帆软用户Hm97F60nva(提问者) 那就一样,只判断24年1月,if(left($rq)="2024-01","24",DATEDIF(DATEINMONTH(MONTHDELTA(today(),-1),25),DATEINMONTH(today(),24),"D"))
    2025-01-07 10:37 
  • 帆软用户Hm97F60nva 帆软用户Hm97F60nva(提问者) 回复 snrtuemc 您好 这个不行呀我选择2025年01月06号 查询到是30天呢 我更新了一下 你看一下
    2025-01-07 10:44 
  • snrtuemc snrtuemc 回复 帆软用户Hm97F60nva(提问者) 写错了,改成,if(left($rq)="2024-01","24",DATEDIF(DATEINMONTH(MONTHDELTA($rq,-1),25),DATEINMONTH($rq,24),"D")+1)
    2025-01-07 10:49 
  • 帆软用户Hm97F60nva 帆软用户Hm97F60nva(提问者) 回复 snrtuemc 您好 你看一下 还是不对呢 我更新了2025年01月06号还是获取的是30天呢
    2025-01-07 10:50 
最佳回答
0
shirokoLv6资深互助
发布于6 天前(编辑于 6 天前

IF(MONTH("2025-02-07")=1,24,DAY(DATEINMONTH(MONTHDELTA("2025-02-07",-1),-1)) )

或者

IF(MONTH("2025-02-07")=1,24,DAYSOFMONTH(MONTHDELTA("2025-02-07",-1)) )

其实除了1月份是24,其实就是求上个月的天数

----

IF(FORMAT("2025-02-07","yyyy-MM")="2025-01",24,DAYSOFMONTH(MONTHDELTA("2025-02-07",-1)) )

  • 帆软用户Hm97F60nva 帆软用户Hm97F60nva(提问者) 他这个只有今年的2025年1月份是24天 明年的1月份就要变成正常的12月25-1月的24了
    2025-01-07 10:35 
  • shiroko shiroko 回复 帆软用户Hm97F60nva(提问者) 那你就加一个,year()等于2025就好了呀
    2025-01-07 13:10 
最佳回答
0
Z4u3z1Lv6专家互助
发布于6 天前

if(and(month($rq_)=1,day($rq_)<25),CONCATENATE(DATEINYEAR($rq_,1),"至",DATEINMONTH($rq_,24)),

if(and(month($rq_)=12,day($rq_)>=25),CONCATENATE(DATEINMONTH($rq_,25),"至",DATEINMONTH($rq_,-1)),

if(day($rq_)>=25,CONCATENATE(DATEINMONTH($rq_,25),"至",DATEINMONTH(MONTHDELTA($rq_,1),24)),CONCATENATE(DATEINMONTH(MONTHDELTA($rq_,-1),25),"至",DATEINMONTH($rq_,24)))

)

)

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

  • 帆软用户Hm97F60nva 帆软用户Hm97F60nva(提问者) 哥 有点不对 2025-12-25取值是 2025-12-25到2026-01-24
    2025-01-07 10:39 
  • Z4u3z1 Z4u3z1 回复 帆软用户Hm97F60nva(提问者) 你举的例子我还以为不能跨年呢
    2025-01-07 10:42 
  • 帆软用户Hm97F60nva 帆软用户Hm97F60nva(提问者) 回复 Z4u3z1 您好 我更新了一下 您看一下 是这个意思
    2025-01-07 10:43 
  • Z4u3z1 Z4u3z1 回复 帆软用户Hm97F60nva(提问者) if(and(month($rq_)=1,day($rq_)=25,CONCATENATE(DATEINMONTH($rq_,25),"至",DATEINMONTH(MONTHDELTA($rq_,1),24)),CONCATENATE(DATEINMONTH(MONTHDELTA($rq_,-1),25),"至",DATEINMONTH($rq_,24)))

    )
    2025-01-07 10:45 
  • 帆软用户Hm97F60nva 帆软用户Hm97F60nva(提问者) 回复 Z4u3z1 您好 这个没获取到呢 报错了我更新了您看一下
    2025-01-07 10:48 
  • 5关注人数
  • 118浏览人数
  • 最后回答于:6 天前
    请选择关闭问题的原因
    确定 取消
    返回顶部