客户需求,在自定义单据表头新增两个字段(周,和对应的时间),输入任意时间,自动算出对应的是第几周和对应的那一周的星期1是几月几号。
代码实现,这里参考了论坛其他伙伴的代码计算出周,现在增加计算对应的那周星期一是多少号
import clr
clr.AddReference('System')
clr.AddReference('System.Globalization')
from System import DateTime
from System.Globalization import Calendar
from System.Globalization import *
from System import *
def DataChanged(e):
# 获取当前字段的键
key = e.Field.Key.upper()
if key == "F_JA_FDATE":
# 获取当前字段的值
curDate = this.View.Model.GetValue("F_JA_FDATE")
# 如果当前字段的值不为空
if curDate is not None:
# 获取当前年份
currentYear = DateTime.Now.Year
# 获取当年的第一天是几号
firstDayOfYear = DateTime(currentYear, 1, 1)
# 格式转换为年月日
formattedDate = firstDayOfYear.ToString("yyyy-MM-dd")
# 获取当前日期
currentDate = curDate
# 获取当前日期是星期几
dayOfWeek = currentDate.DayOfWeek
# 获取当前日期的前一天
dt = currentDate.AddDays(1 - int(dayOfWeek))
# 获取默认的日历系统
gc = GregorianCalendar()
# 获取当前日期所在的周数
weekOfYear = gc.GetWeekOfYear(curDate, CalendarWeekRule.FirstDay, DayOfWeek.Monday)
# 将周数更新到对应字段
this.View.Model.SetValue("F_JA_WEEK", weekOfYear)
# 将星期1对应日期设置到对应字段
this.View.Model.SetValue("F_UNW__JA_FDATE_QTR", dt)
# 返回
return
代码分享.rar(0.74KB)