以文本方式查看主题

-  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秒?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目924.rar


--  作者:有点蓝
--  发布时间: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编辑过]