Foxtable(狐表)用户栏目专家坐堂 → [求助]如何获取季度、周的数值?


  共有1607人关注过本帖树形打印复制链接

主题:[求助]如何获取季度、周的数值?

帅哥哟,离线,有人找我吗?
hrw68529
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
[求助]如何获取季度、周的数值?  发帖心情 Post By:2017/9/29 16:17:00 [只看该作者]

如何获取季度和周的数,请专家指教。谢谢

Dim dmm As Date = e.DataRow("起始时间")
e.DataRow("起始时间") = dmm
e.DataRow("年") =dmm.Year
e.DataRow("月") = dmm.Month
e.DataRow("季度") = dmm.Quarter
e.DataRow("周") = dmm.Week

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/29 16:24:00 [只看该作者]

季度

 

e.DataRow("季度") = (dmm.Month-1) \ 3 + 1

 

周数


Dim s As String = System.Globalization.CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(dmm, Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday).ToString

e.DataRow("周") = s

 回到顶部
帅哥哟,离线,有人找我吗?
hrw68529
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2017/9/29 16:29:00 [只看该作者]

有点甜,想算一下每个月的第几周,怎么写,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/29 16:41:00 [只看该作者]

Dim d As Date = Date.Today
Dim fday As Date = new Date(d.Year, d.Month, 1)
Dim finwek As Integer = fday.DayOfWeek
Dim fwekday As Integer = 7 - (finwek)
Dim diffday As Integer = d.Day - fwekday
diffday = iif(diffday > 0, diffday, 1)
Dim wekInMonth As Integer
If diffday Mod 7 = 0 Then
    wekInMonth = math.Floor(diffday / 7) - 1
Else
    wekInMonth = math.Floor(diffday / 7)
End If
wekInMonth += 1 + iif(d.Day > fwekday, 1, 0)
msgbox(wekInMonth)

 回到顶部
帅哥哟,离线,有人找我吗?
hrw68529
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2017/9/29 16:46:00 [只看该作者]

谢谢了,但这个代码怎么用到列“周”里边去呢

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/29 16:49:00 [只看该作者]

Dim d As Date = dmm
Dim fday As Date = new Date(d.Year, d.Month, 1)
Dim finwek As Integer = fday.DayOfWeek
Dim fwekday As Integer = 7 - (finwek)
Dim diffday As Integer = d.Day - fwekday
diffday = iif(diffday > 0, diffday, 1)
Dim wekInMonth As Integer
If diffday Mod 7 = 0 Then
    wekInMonth = math.Floor(diffday / 7) - 1
Else
    wekInMonth = math.Floor(diffday / 7)
End If
wekInMonth += 1 + iif(d.Day > fwekday, 1, 0)

e.DataRow("周") = wekInMonth

 回到顶部
帅哥哟,离线,有人找我吗?
hrw68529
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2017/9/29 16:54:00 [只看该作者]

你太强大了,谢谢你


 回到顶部
帅哥哟,离线,有人找我吗?
hrw68529
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1116 积分:8608 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2017/9/30 15:20:00 [只看该作者]

有点甜,下边的代码能改为自某一个月起,连续计算月数,过了满一年后继续计算,如12,13、14.……………………
如下代码,是你给我的连续计算周的,能改成连续计算月吗

Dim s As String = System.Globalization.CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(dmm, Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday).ToString

e.DataRow("连续计算月") = s


 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106688 积分:542629 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/30 15:41:00 [只看该作者]

月数直接加减即可

e.DataRow("连续计算月") = e.DataRow("连续计算月")  + 1

 回到顶部