Я хочу изменить функцию DayOfWeek()
, чтобы я мог получать даты в соответствии с желаемым первым днем недели. Итак, что я делаю в этом коде, так это то, что я устанавливаю startDate
, endDate
и selectDays
, которые я хочу проверить. Вот мой код:
<cfscript>
function Mydayofweek(date, day_1)
{
return (((DayOfWeek(date) + (7 -day_1)) MOD 7) +1);
}
</cfscript>
<cfset startDate = '07/01/2013'>
<cfset endDate = '07/25/2013'>
<Cfset mydates = ''>
<cfset selectDays = '2,6'>
<cfset MyWeekFirstDay = 6> <!---I selected Friday = 6 --->
<cfset new = ''>
<cfoutput>
<cfloop list="#selectDays#" delimiters="," index="d">
<cfset new &= '#Mydayofweek(d, MyWeekFirstDay)#,' >
</cfloop>
<cfif new NEQ ''>
<cfset ScheduleDate = left(new, (len(new)-1) )>
</cfif>
<cfdump var="#ScheduleDate#"><br />
</cfoutput>
<cfset AppendToMyDates = false>
<cfloop from="#startDate#" to="#endDate#" index="day">
<cfif AppendToMyDates is false and DayOfWeek(day) is ListFirst(selectDays)>
<cfset AppendToMyDates = true>
</cfif>
<cfif listfind(ScheduleDate, DayOfWeek(day), ',') NEQ 0 and AppendToMyDates is true>
<cfset mydates &= "#dateformat(day, 'mmm, dd, yyyy dddd')#,<br />">
</cfif>
</cfloop><cfoutput>#mydates#</cfoutput>
Это написано в ColdFusion. Этот код генерирует этот вывод:
4,1
Jul, 03, 2013 Wednesday,
Jul, 07, 2013 Sunday,
Jul, 10, 2013 Wednesday,
Jul, 14, 2013 Sunday,
Jul, 17, 2013 Wednesday,
Jul, 21, 2013 Sunday,
Jul, 24, 2013 Wednesday,
Вывод должен быть таким, потому что я выбираю пятницу = 1 по четверг = 7, поэтому указанные выше дни selectDays = '2,6'
теперь должны указывать на selectDays = '7,4' по отношению к моим первым дням 2,6
7,4
Jul, 06, 2013 Saturday,
Jul, 10, 2013 Wednesday,
Jul, 13, 2013 Saturday,
Jul, 17, 2013 Wednesday,
Jul, 20, 2013 Saturday,
Jul, 24, 2013 Wednesday,
Я установил selectDays = '2,6'
, это означает, что я хочу получить даты Saturday
и Wednesday
, потому что я установил 6 в качестве первого дня недели, и он начинается с пятницы (по умолчанию это было воскресенье). Мои дни начинаются с воскресенья Sunday = 1 , Monday = 2 , Tuesday = 3 , Wednesday = 4 , Thursday = 5 , Friday = 6 , Saturday = 7
, и теперь я изменил начало даты с Friday = 1 , Saturday = 2 ,Sunday = 3 , Monday = 4 , Tuesday = 5 , Wednesday = 6 , Thursday = 7
в функции скрипта. На самом деле я думаю, что в моей функции сценария есть ошибка, которую я не понимаю. Пожалуйста, помогите мне найти проблему и ее решение, спасибо