历史版本7 :获取日期在当月中是第几周 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本
功能变更
11.0--

1.2 问题描述

已知函数中有 WEEK() 可获取日期所在一年中的第几周,如何获取日期在当月的第几周呢?

1.3 实现思路

使用 DATEINMONTH() 获取日期所在月份的第一天日期,使用 WEEKDAY() 获取第一天的星期数,加上查询日期的天数,除以 7 向上取整,即为日期在当月的第几周。

2. 操作步骤编辑

常见的日期参考:常见日期处理函数

1. 在 A1 单元格插入公式:RANGE(date(2018, 12, 1), today()),并设置单元格的扩展方向为纵向,如下图所示:

222
2. 在 B1 单元格插入公式:ROUNDUP((DAY(A1) + (IF(WEEKDAY(DATEINMONTH(A1, 1)) = 0, 7, WEEKDAY(DATEINMONTH(A1, 1)))) - 1) / 7, 0),如下图所示:

222

公式
说明
 WEEKDAY(DATEINMONTH(A1, 1))日期所属月份第一天对应的星期数
IF(WEEKDAY(DATEINMONTH(NOW(), 1)) = 0, 7, WEEKDAY(DATEINMONTH(NOW(), 1)))如果日期所属月份第一天对应的星期数为星期天,返回 7,否则返回对应的星期数
DAY(A1)返回日期中的日
ROUNDUP((DAY(A1) + (IF(WEEKDAY(DATEINMONTH(A1, 1)) = 0, 7, WEEKDAY(DATEINMONTH(A1, 1)))) - 1) / 7, 0)查询日期的天数加上日期所属月份第一天对应的星期数,除以 7 向上取整

注:此公式计算结果以星期一为一周的计算起始时间,如需从星期天开始计算,将公式修改为:ROUNDUP((DAY(A1) + (IF(WEEKDAY(DATEINMONTH(A1, 1)) = 0, 7, WEEKDAY(DATEINMONTH(A1, 1))))) / 7, 0)

3. 效果查看编辑

保存模板,点击分页预览。

3.1 PC 端效果

222

3.2 移动端效果

App 与 HTML5 效果相同,如下图所示:

222

4. 模板下载编辑

已完成的模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\function\使用公式计算日期在当月中的第几周.cpt

点击下载模板:使用公式计算日期在当月中的第几周.cpt