2

日付と日付ロジック ColdFusion に関しては、私が一番得意ではないことを認めるのは恥ずかしいことです。

<!---checks frequency for form schedule and sets datepart. RecordType_Frequency is a column in database daily, weekly, monthly etc.--->

<CFSWITCH expression="#RecordType_Frequency#">
     <CFCASE value="Daily">
       <CFSET datepart = "d">
     </CFCASE>
     <CFCASE value="Weekly">
       <CFSET datepart = "ww">
     </CFCASE>
     <CFCASE value="Monthly">
       <CFSET datepart = "m">
     </CFCASE>
     <CFCASE value="Quarterly">
       <CFSET datepart = "q">
     </CFCASE>
     <CFCASE value="Yearly">
       <CFSET datepart = "yyyy">
     </CFCASE>
</CFSWITCH>

 <!---setting dates based on database values for when the form should schedule--->

 <!---enddate Uses the RecordType_Frequency_StartDate column from the database which is a date in the past. Coefficient is a stored db value for the frequency 1,2 etc. for could scheduled every 1 year, 2 year --->

 <cfset enddate = datediff(datepart,RecordType_Frequency_StartDate,todaydate) + Coefficient>

 <!---start date is set to current RecordType_Frequency_StartDate which is a column   value from the database--->

 <cfset startdate = RecordType_Frequency_StartDate>

 <!---sets the next start date for when the for should schedule based on historic db start date--->

 <cfset new_date = dateformat(DateADD(datepart,Coefficient,startdate),'MM-DD-YYYY')>

 <cfloop from="1" to="#enddate#" index="i">

   <cfset new_date = dateformat(DateADD(datepart,Coefficient,startdate),'MM-DD-YYYY')>

   <cfset startdate = new_date>

   <cfset diff = datediff(datepart,RecordType_Frequency_StartDate,startdate)>

   <cfif (startdate GT todaydate)>

      <cfset next_date= startdate>

  <cfoutput>

    <!---I need this output to equal the next date value that would fall based on the schedule, future date. I am seeing multiple dates and need to figure out how to capture would weould truly be the next scheduled date---> 

     Next Date = #diff# - #dateformat(next_date)#<br />

  </cfoutput>

 </cfif>

  </cfloop>

要約すると、スケジュールにあるフォームがあります。使用しなければならない日付は、開始/設定日だけです。持っている情報を使用して、フォームの次の予定日を取得または入力する必要があります。この日付はスケジュールされたイベントと組み合わせて使用​​されるため、明らかに、次の作成日は将来の日付である必要があります。

コメントを付けてコードを投稿しましたが、現在の日付に最も近い次の論理日付を順番に取得するのに助けが必要です。

4

2 に答える 2

2

http://cfquickdocs.com/#DateAdd

次の可能性のある日付だけが必要な場合は、dateadd() 関数を使用します。

たとえば、次の平日の使用が必要な場合:dateadd("w", 1, now())

于 2012-06-14T02:58:44.957 に答える
0

私があなたの問題を理解していると仮定すると、私がしばらく前に書いたUDFがあなたの問題を解決するかもしれません:

http://www.bryantwebconsulting.com/blog/index.cfm/2011/2/24/EnglinshFriendly-Interval-Calculation

「間隔」引数の他のいくつかのオプションの中で、switch ブロックで使用するオプションも受け入れる必要があります。

于 2012-06-14T14:10:42.817 に答える