Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]根据周别返回日期

1楼
qq51837000 发表于:2024/5/29 19:09:00
老师,请问如何根据给定的年份和周别返回这一周的日期,代码怎么写?
如:给定2023年第36周,如何写代码得到这一周的第一天或最后一天?
2楼
hongsejiyi 发表于:2024/5/29 21:14:00
Dim n As Integer = 36 '周次
For i As Integer = 1 To DatePart("ww", New Date(2024, 12, 31))
    Dim d As Date = New Date(2024, 1, 1)
    d = d.AddDays(7 * (i - 1))
    If i = n Then 
        Output.Show(cexp("第{0}周的第1天{1},最后一天{2}", n, d, d.AddDays(6)))
    End If 
Next 
3楼
hongsejiyi 发表于:2024/5/29 21:14:00
运行结果:
第36周的第1天2024-09-02,最后一天2024-09-08

4楼
qq51837000 发表于:2024/5/30 0:03:00
感谢回答,但这个好象不对吧,你这是从1月1日开始按7天相乘得到的结果,不准确
5楼
cd_tdh 发表于:2024/5/30 8:56:00
Dim d As Date = Date.Today
Output.Show(d.DayOfWeek),通过当天是星期几反算吧
6楼
有点蓝 发表于:2024/5/30 9:02:00
Dim year As Integer = 2024
Dim week As Integer = 1
Dim d As Date = New Date(year, 1, 1)
Dim w = d.DayOfWeek
Dim startdate As Date
Dim Enddate As Date
Select Case week
    Case 0
        startdate = d
        Enddate = d.AddDays(7 - w - 1)
    Case 53
        startdate = d.AddDays(7 - w).AddDays(7 * 51)
        Enddate = d.AddYears(1).AddDays( - 1)
    Case Else
        startdate = d.AddDays(7 - w).AddDays(7 * (week - 2))
        Enddate = startdate.AddDays(6)
End Select
Output.Show(startdate & "-" & Enddate)
[此贴子已经被作者于2024/5/30 9:18:49编辑过]
7楼
cd_tdh 发表于:2024/5/30 9:09:00
mark
8楼
qq51837000 发表于:2024/5/30 9:45:00
怎样写成带year和week两个参数的自定义函数?
9楼
有点蓝 发表于:2024/5/30 9:53:00
Dim year As Integer = args(0)
Dim week As Integer = args(1)
10楼
qq51837000 发表于:2024/5/30 10:23:00
谢谢老师
[此贴子已经被作者于2024/5/30 14:36:45编辑过]
共10 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 2 queries.