字符串周日期到冷融合日期

2023-12-09

我需要格式化一个字符串日期,如下所示:

2021-W46 

变成我可以在冷融合中使用的东西parseDateTime or dateFormat功能。

W46在本例中是第 46 周。

我尝试的是直接将该字符串放入parseDateTime and dateFormat,但两者都给了我一个错误,即我的输入不是正确的日期格式。

我怎样才能做到这一点?

Edit:

我忘了提到我需要那周的第一天(在我的例子中是星期一)


使用维基百科的算法从一周日期计算序数日期或月份日期和您的输入格式,此函数将从以字符串形式传递给函数的提供的 ISO 周编号格式返回星期一日期。

从周日期计算序数日期或月份日期

算法:

  1. 乘以周数woy by 7.
  2. 然后添加工作日编号dow.
  3. From this sum subtract the correction for the year:
    • 获取 1 月 4 日的工作日。
    • Add 3.
  4. The result is the ordinal date, which can be converted into a calendar date.
    • 如果由此获得的序数日期为零或负数,则该日期属于上一个日历年;
    • 如果大于该年的天数,则属于下一年。

可以找到代码的工作要点here.

<cffunction name="weekOfYear" returnType="date">
    <cfargument name="yearWeek" type="string">

    <!--- Parse out the year, the week of the year from arguments.yearWeek and default the day of week to Monday --->
    <cfset year = listGetAt(arguments.yearWeek, 1, "-W")>
    <cfset woy = listGetAt(arguments.yearWeek, 2, "-W")>
    <cfset dow = 2>
    
    <!--- Calculate the number of days this year and last year for later use. --->
    <cfset DaysThisYear = daysInYear(CreateDate(year, 1, 1))>
    <cfset DaysLastYear = daysInYear(CreateDate(year-1, 1, 1))>
    
    <!--- Multiply week number "woy" by 7, then add the weekday number "dow" --->
    <cfset ordinalDate = woy*7 + dow>
    
    <!--- From this sum, subtract the correction for the year: Get the weekday of 4 January and add 3 --->
    <cfset ordinalDate = ordinalDate - (dayOfWeek(parseDateTime("#year#-01-04", "y-M-d")) + 3)>
    
    <!--- The result is the ordinal date, which can be converted into a calendar date. --->
    <cfif ordinalDate LT 1>
        <!--- If the ordinal date thus obtained is zero or negative, the date belongs to the previous calendar year. --->
        <cfset ordinalDate = ordinalDate + daysLastYear>
        <cfset year = year-1>
    <cfelseif ordinalDate GT daysThisYear>
        <!--- If it is greater than the number of days in the year, it belongs to the following year. --->
        <cfset ordinalDate = ordinalDate - daysThisYear>
        <cfset year = year+1>
    </cfif>

    <cfreturn parseDateTime("#year#-#ordinalDate#", "y-D")>

</cffunction>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串周日期到冷融合日期 的相关文章

随机推荐

  • 如何在 Django 中设置自定义中间件?

    我正在尝试创建一个中间件 以选择性地将 kwarg 传递给满足条件的每个视图 问题是我找不到如何设置中间件的示例 我见过重写我想要的方法的类 process view Class CheckConditionMiddleware objec
  • jpa如何创建与父实体具有相同id的新实体(联合继承)

    我的问题非常类似于更改保留其 ID 的实体的类型 但我使用 InheritanceType JOINED 而不是 Table per class 这意味着我不更改任何表 只是创建一个新的子类 其 id 与超类相同 总而言之 我有一个 Per
  • 如何在用户表单列表框中显示过滤后的行

    我在用户窗体中有一个 Excel 工作表和一个列表框 当我通过单击用户窗体上的按钮来过滤工作表并更新列表框时 我会看到列表框中的所有行 我的意思是 listbox1 显示所有单元格 过滤器 无过滤器 我的更新列表框的代码 Private S
  • 组合框控件模板下拉按钮

    我想知道是否有人有一个示例 说明如何设置组合框的样式 模板以仅在默认初始状态下显示按钮 有点像功能区栏的 DropDownButton 库 我只希望用户能够单击按钮并列出组合框项目 做出选择后 它不会将所选项目保存在文本字段中 因为没有文本
  • h2o 模型列出每个特征的 dtypes

    有没有一种方法可以列出现有 h2o 模型的每个特征的预期数据类型 而无需查看训练数据 类似于的输出h2o frame types 但不查看训练数据 只查看模型对象 在本例中 我有一个已保存的模型文件 可以导入回 h2o 的通用类型 而不是
  • HTTPS 通信失败 ABAP

    我正在开发一个应连接到两个 Web 应用程序的应用程序 第一个 Web 应用程序已完成 http example com 不幸的是 第二个 Web 应用程序使用 HTTPS https example com 抛出这个错误 Http Com
  • Android java使用Comparable自定义排序

    Override public int compareTo final myRow another final int BEFORE 1 final int EQUAL 0 final int AFTER 1 if this another
  • 如何使用 matplotlib 在单个页面上绘制多个绘图?

    我编写了一次打开 16 个数字的代码 目前 它们都作为单独的图表打开 我希望他们在同一页面上打开所有内容 不是同一个图表 我想要在单个页面 窗口上显示 16 个独立的图表 此外 由于某种原因 numbins 和 defaultreallim
  • 按类别名称搜索

    当我尝试按类别名称进行搜索时 它什么也没有返回 例如 我有有机 独特 体育等类别 在搜索中我输入独特 但我没有得到任何结果 不幸的是 Magento 的默认搜索功能是产品搜索 并且仅限于该范围 当您搜索 Unique 时 它会查找产品名称
  • Reporting Services 表达式在某些情况下会出错

    在报告的摘要行中计算平均值时出现错误 我的表情是这样的 IIF SUM Fields column3 Value gt 0 Format DateAdd s SUM Fields column4 Value SUM Fields colum
  • 在pygame中检查歌曲是否播放完毕

    有什么方法可以判断 pygame 中的歌曲是否已播放完毕 这是代码 from tkinter import import pygame root Tk pygame init def play pygame mixer music load
  • Visual Studio 2010 局部变量历史记录

    我正在调试一个具有多个嵌套循环的进程 这些循环会更改几个不同的局部变量 我可以通过一次迭代一次来观看这些内容 但这非常乏味 而且我正在忘记自己的位置 我根本没有时间每次都记下每个变量 有没有办法可以查看局部变量的历史记录 一个插件 如果没有
  • 在 xsl 变量中存储 html 标签

    抱歉 如果这是一个愚蠢的问题 但是可以在 xsl 1 0 变量中存储和检索 HTML 片段吗 例如
  • 在 Vagrant 配置期间使用 Sed 将行追加到文件

    我目前正在使用Vagrant设置运行 Ubuntu 的开发机器 我想在我的中添加几行 profile将目录添加到我的 PATH变量 使用sed 为此 我将这些行添加到我的机器中Vagrantfile config vm provision
  • 左值整型常量表达式是常量表达式吗?

    N4527 5 20 表达式常量 p3 An 积分常量表达式是整型或无范围枚举类型的表达式 隐式转换为纯右值 其中转换后的表达式是核心常量表达式 5 20 expr const p5 A 常量表达式是一个泛左值核心常量表达式 其值引用作为常
  • 为什么 Rust 不允许可变别名?

    Rust 不允许这种代码 因为它不安全 fn main let mut i 42 let ref to i 1 unsafe mut mut i as mut i32 let ref to i 2 unsafe mut mut i as m
  • 从给定 X 值的密度函数检索 Y 值

    给定一个简单的密度直方图和曲线 如下所示 如何检索给定 X 值的 Y 值 例如 y 值位于mean dat dat lt c 5 7 4 6 4 3 55 6 7 5 4 3 33 44 5 2 33 22 hist dat freq F
  • currentUser 返回 null

    我有一个使用 firebase auth 进行身份验证的反应应用程序 当一个人登录后 它会将他们重定向到书籍页面 这是提交登录处理程序 import auth firebase from firebase async function go
  • 如何使用 SMOTE 将合成数据集保存在 CSV 文件中

    我使用信用卡数据通过 SMOTE 进行过采样 我正在使用 geeksforgeeks org 中编写的代码 Link 运行以下代码后 它会显示类似以下内容 print Before OverSampling counts of label
  • 字符串周日期到冷融合日期

    我需要格式化一个字符串日期 如下所示 2021 W46 变成我可以在冷融合中使用的东西parseDateTime or dateFormat功能 W46在本例中是第 46 周 我尝试的是直接将该字符串放入parseDateTime and