package service import ( "leit.com/aps_engine/models" "time" ) // 周模型 type WeekModelSrv struct { WeekModelNr int ValidFromDate time.Time DayModelNrArray []int WeekModelTab models.Weekmodel } // 初始化 func(wmsrv *WeekModelSrv)Init(wmtab models.Weekmodel){ var ( i int ) wmsrv.WeekModelTab = wmtab wmsrv.WeekModelNr = wmsrv.WeekModelTab.Weekmodelnr wmsrv.ValidFromDate = time.Now() wmsrv.DayModelNrArray = []int{} for i = 0; i < wmsrv.WeekModelTab.Loopdays; i++ { if i < len(wmsrv.WeekModelTab.Itemlst) { wmsrv.DayModelNrArray = append(wmsrv.DayModelNrArray, wmsrv.WeekModelTab.Itemlst[i].Daymodelnr) }else{ wmsrv.DayModelNrArray = append(wmsrv.DayModelNrArray, 0 ) } } } // 基于指定日期获取对应的日模型号 func(wmsrv *WeekModelSrv)GetDayModelNrByDate(spdate time.Time)(DayModelNr int){ var( crossdays, moddays int ) crossdays = GetCrossDays(wmsrv.ValidFromDate, spdate) moddays = crossdays % wmsrv.WeekModelTab.Loopdays if moddays < len(wmsrv.DayModelNrArray){ DayModelNr = wmsrv.DayModelNrArray[moddays] }else{ DayModelNr = 0 } return }