以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 为何仪表盘数据要快1秒? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193534) |
||||
-- 作者:jhxb8821 -- 发布时间:2024/9/24 8:38:00 -- 为何仪表盘数据要快1秒? 为何仪表盘数据要快1秒?
|
||||
-- 作者:有点蓝 -- 发布时间:2024/9/24 8:49:00 -- 计划管理和窗口计时器未必是同步的,如果要同步,要么全部放到一个计划里,要么全部放到一个计时事件里 |
||||
-- 作者:jhxb8821 -- 发布时间:2024/9/24 9:13:00 -- 确实是这样 |
||||
-- 作者:jhxb8821 -- 发布时间:2024/9/25 10:55:00 -- \'DatePart函数语法:DatePart(interval, Date[, firstdayofweek[, firstweekofyear]]) \'firstdayofweek参数的设定值:指定星期一为第一天。vbMonday2星期一 \'firstweekofyear参数的设定值:指定一年中第一周,新年中包含 1 月 1 日至少有四天的星期为第一周。(即大半个星期)\'vbFirstFourDays 2 \'e.DataRow("中国标准年周次") = e.DataRow("日期").Year & "年第" & Datepart("ww", e.DataRow("日期")[, vbMonday[, vbFirstFourDays]]) & "周" 老师, 请教一下, 这样写怎么出错?
|
||||
-- 作者:有点蓝 -- 发布时间:2024/9/25 10:59:00 -- http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=192029 |
||||
-- 作者:jhxb8821 -- 发布时间:2024/9/25 12:39:00 -- DatePart函数语法:DatePart(interval, date[,firstdayofweek[, firstweekofyear]]) firstdayofweek如果没有指定,则默认为星期日为第一天。 firstweekofyear如果没有指定,则默认为从包含 1 月 1 日的星期为第一周。 根据:Datepart("ww", e.DataRow("日期"))计算 2019-12-31星期二
2019年第53周,根据中国标准,应算2020年第1周 2021-01-01星期五
2021年第1周,根据中国标准,应算2020年第53周 根据中国标准,firstdayofweek和firstweekofyear这两个参数不能使用缺省值,应设置为: firstdayofweek 参数的设定值如下: 常数 值 描述 vbMonday 2 星期一 firstweekofyear 参数的设定值如下: 常数 值 描述 vbFirstFourDays 2 从第一个其大半个星期在新的一年的一周开始。 请教老师,下面这个代码怎么修改? Datepart("ww", e.DataRow("日期")[, vbMonday[, vbFirstFourDays]]) 或 Datepart("ww", e.DataRow("日期")[, 2[, 2]])
|
||||
-- 作者:有点蓝 -- 发布时间:2024/9/25 13:27:00 -- 去掉中括号 |
||||
-- 作者:jhxb8821 -- 发布时间:2024/9/25 14:30:00 -- 中国标准的年周次计算正确代码 e.DataRow("中国标准年周次") = Datepart("ww", e.DataRow("日期"), vbMonday, vbFirstFourDays) \'星期一为星期第一天;新年中包含 1 月 1 日至少有四天的星期为第一周 这里加上年和周后, 年就不对了, 还需要进行判断 e.DataRow("辅助年周次2") = e.DataRow("日期").Year & "年第" & Datepart("ww", e.DataRow("日期"), vbMonday, vbFirstFourDays) & "周" 请教老师, 这里代码如何表达年初几天, 若1月1日为星期5、6、7, 则为上年的年数;年末12月31日为星期1、2、3, 则为下年的年数; 如:2021 - 01 - 01星期五 2020年第53周 2019 - 12 - 31星期二 2020年第1周
|
||||
-- 作者:有点蓝 -- 发布时间:2024/9/25 15:00:00 -- 没看懂想表达什么问题? |
||||
-- 作者:jhxb8821 -- 发布时间:2024/9/25 15:39:00 -- If e.DataCol.name = "日期" Then \'如果更改的日期列 If e.DataRow.IsNull("日期") Then \'日期是否为空 Else Dim d0 As Date = e.DataRow("日期") Dim d1 As Date Dim d2 As Date Dim d3 As Date Dim d4 As Date Dim ZY As Integer = d0.Year d1 = New Date(ZY, 1, 1) \'取得该年的第一天 d2 = New Date(ZY, 12, 31) \'取得该年的最后一天 d3 = New Date(ZY, 1, 4) d4 = New Date(ZY, 12, 28) Dim xq1 As Integer = Weekday(d1, 2) Dim xq2 As Integer = Weekday(d2, 2) If d0<d3 And xq1>4 Then \'也就是1月1日是星期四后面的(包括星期5、6、7) e.DataRow("中国标准年周次1") = ZY - 1 & "年第" & Datepart("ww", d0, vbMonday, vbFirstFourDays) & "周" ElseIf d0>d4 And xq2<4 Then \'也就是12月31日是星期四前面的(包括星期1、2、3) e.DataRow("中国标准年周次1") = ZY + 1 & "年第1周" Else e.DataRow("中国标准年周次1") = ZY & "年第" & Datepart("ww", d0, vbMonday, vbFirstFourDays) & "周" End If End If End If 老师,请看一下,这样写行吗,代码还能不能简单点 [此贴子已经被作者于2024/9/25 16:41:33编辑过]
|