Frage

ich brauche, um zu bestimmen, ob eine Reihe von Terminen zwei Wochen enthalten.

Zum Beispiel:

Wenn Sie eine Gruppe von Datensätzen aus einer Datenbank der Rückkehr, die ein Datum enthalten, muss es etwas zu unterscheiden zwischen den verschiedenen Wochen.

<cfloop query="datesExample">

   <cfif DateDiff("d",DateFormat(lastDate),DateFormat(OriginalDate)) GTE 7>
       <hr />
   </cfif>
   <p>#OrginalDate#</p>

   <cfset lastDate = DateFormat(OrginalDate) />
</cfloop>

Für mich scheint dies wie alle Logik, die ich brauchen würde, um zu bestimmen, hinzufügen, wenn es eine neue Woche.

Obwohl ich keine Ergebnisse daraus zu bekommen.

Wer hat eine Idee?

Update:

Das ist mein eigentliches if-Anweisung:

<cfif DayofWeek(lastShiftDate) NEQ DayOfWeek(Time_In) AND DateDiff("d",lastShiftDate, Time_In) GTE 7>
War es hilfreich?

Lösung 6

Es war viel einfacher als das, was ich dachte. Alles, was ich tun musste, war den Wert des ersten Datums. Also, <cfif query.RecordCount EQ 1><cfset firstDate = Now() /></cfif> und führen Sie dann eine DATEDIFF () mit dem lastShiftDate

Vielen Dank für die Hilfe aller.

Andere Tipps

würde ich QueryAddColumn eine zusätzliche Spalte auf das Ende Ihrer Abfrage hinzuzufügen, dann Schleife durch und den Beginn der Woche festgelegt für jeden Datensatz in der Abfrage. So etwas wie folgt aus:

<cfset datesExample = QueryNew("lastshiftdate", "date") />
<cfset QueryAddRow(datesExample) />
<cfset QuerySetCell(datesExample, "lastshiftdate", "2009-01-15") />
<cfset QueryAddRow(datesExample) />
<cfset QuerySetCell(datesExample, "lastshiftdate", "2009-01-20") />
<cfset QueryAddColumn(datesExample, "StartofWeek", "time", ArrayNew(1)) />
<cfloop query="datesExample">
    <cfset QuerySetCell(datesExample, "StartofWeek", DateAdd("d", -(DayOfWeek(lastshiftdate) - 1), lastshiftdate), CurrentRow) />
</cfloop>

<cfdump var="#datesExample#">

Wenn Sie dann den cfoutput verwenden, können Sie einfach Gruppe der StartofWeek Spalte ohne all die doof bedingte Logik zu tun.

Dan

, wenn die dayofweek von DatumA ist anders als dayofweek von dateB und ihre DatDiff größer als 7?

Dann DatumA und dateB sind in verschiedener Woche?

ist der Code Sie hat mehrere Syntaxfehler. Wenn Sie es aus der Quelle kopiert, können Sie versuchen, das Ausschalten, was die Fehlerbehebung Sie hält von dem Fehler zu sehen.

Zuerst Adresse Syntax: Ihre cfif ist nicht geschlossen. Dateformat () nimmt zwei Argumente - das Datum Objekt und die Datumsmaske. Wenn dies nicht in einem cfoutput-Block ist, werden Sie nur die wörtliche #OrginalDate # angezeigt werden.

, um die Logik zu adressieren:

Ich gehe davon aus OriginalDate ein Feld in der Abfrage Rückkehr ist.

Ich bin nicht sicher genau das, was Sie zu tun versuchen. Ihr Code würde eine horizontale Linie statt des Datums drucken zu jeder Zeit gab es mehr als 6 Tage zwischen zwei Datensätzen. Allerdings werden Sie nie eine horizontale Linie so lange drucken, wie die Daten sind näher zusammen. Also, wenn Sie in der Datenbank immer Mo / Mi / Fr haben, würden Sie nie eine HR bekommen, weil die datediff würde zwei oder drei Tage, nie sieben.

Es gibt mehrere Ansätze, dieses zu beschäftigen. Wenn Sie Ihren Zweck klären, könnten wir in der Lage sein, besser zu helfen. Zum Beispiel, was definiert eine neue Woche? Sa / So um Mitternacht? Seit dem ersten Tag in der Abfrage? Was wollen Sie sehen?

Schauen Sie sich die Tag der Woche Funktion

Schauen Sie sich das Week Funktion: Von einem Datum / Uhrzeit-Objekt bestimmt die Woche Nummer innerhalb des Jahres.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top