Programmieren: Hilfe & Austausch
19.10.2012 um 20:58
Naja, erst mal egal. Morgen früh gehts nach Dortmund auf Elektor Live. Habe mich für zwei Seminare eingetragen. "Androis Apps Programmieren" und "Elektronik steuern mit Android". Wenn ich jetzt noch die Zeit finde mit meinen ganzen tollen Gadgets auch mal zu arbeiten und wenigstens einige meiner geplanten Projekte zu verwirklichen dann wäre ich richtig happy :-(
melden
Programmieren: Hilfe & Austausch
20.10.2012 um 14:39
ok, da ich grade nicht dahinter komme frag ich einfach mal hier
also folgendes
der betroffene code:
for (var i = 0; i < lessons.length; i++) {
for (var j = 0; j < zeiten.length; j++) {
var $platz = $('.block').eq(j).find('.' + lessons[i].tag);
if (lessons[i].startTime.getTime() == zeiten[j].startTime.getTime())
var same = true;
if(same) {
$platz.append(
lessons[i].fach + '
' +
lessons[i].lehrer + '
' +
lessons[i].raum + '
' + '
' +
lessons[i].LB + '
'
);
$platz.addClass(lessons[i].lehrer);
if (lessons[i].endTime.getTime() == zeiten[j].endTime.getTime())
same = false;
}
}
$('.free').text (' ');
}
javascript
Das ganze füllt primär Felder aus, benutz dafür die "same" flag.
lessons und zeiten sind zwei arrays, das eine beinhaltet die unterrichts blocks oder einheiten, das andere die nackten, tatsächlichen zeiten
zb, wenn die erste einheit von 7:45 - 9:15 geht steht in lessons auch 7:45 und 9:15, in zeiten aber
7:45 - 8:30 und 8:30 - 9:15, er vergleicht erst die startzeiten miteinander, findet er zwei gleiche setzt er auf true und füllt die felder solange nacheinander aus, bis die endzeiten stimmen, danach false, nochmal gucken, weiter ausfüllen usw
das funktioniert so ganz gut
jetzt hab ich aber das prob, dass ich nicht verstehe, wieso er bei dienstag, bei den ersten beiden stunden eine gemeinsamkeit findet obwohl keine besteht
das fach hat die zeitinfo 9:30 - 11:00 trotzdem trägt er es bei 7:45 ein. warum?
da steht er soll es bei block.eq(j) eintragen, also in dem block, der der position in zeiten (der entsprechenden stunde) entspricht, aber warum trägt ers dann bei 0 ein und nicht 2?
2x zitiertmelden
Programmieren: Hilfe & Austausch
20.10.2012 um 15:19
Hi,
ich hab mit JS zwart nicht viel zu tun aber interpretiert es 9:30 - 11:00 evtl. als Rechenoperation?
Anosnten ist es immer sinnvoll die Variablen und Arrays zum debuggen auszugeben. Nicht nur dann wenn sie gebraucht werden.
melden
Programmieren: Hilfe & Austausch
20.10.2012 um 15:56
@YaCool
Wieso für sowas JavaScript und nicht PHP ?
Hast du vieleicht ein Beispiel ?
melden
Programmieren: Hilfe & Austausch
20.10.2012 um 15:58
Was für ein Beispiel?
Das tut doch nichts zur Sache wieso ich einen Stundenplan schreibe und wieso ich js und nicht php oder sonst was nehme. Jetzt ist es halt js und das Problem steht oben beschrieben, ich will mich nicht an Rahmenfragen aufhalten.
1x zitiertmelden
Programmieren: Hilfe & Austausch
20.10.2012 um 16:02
Lässt sich das Problem auf andere Tage übetragen oder ist es Dienstagsspezifisch?
melden
Programmieren: Hilfe & Austausch
20.10.2012 um 16:04
Nein nur da.
Das kann aber auch daran liegen, dass Dienstag die ersten beiden frei sind und er deshalb nicht wie bei allen anderen ganz oben anfangen muss.
Nach unten hin (die Tage sind unterschiedlich lang) hört er aber überall sauber auf.
melden
Programmieren: Hilfe & Austausch
20.10.2012 um 16:06
Sowas sollte man dazu schreiben. Mit was füllst du leere Werte?
melden
Programmieren: Hilfe & Austausch
20.10.2012 um 16:07
Hatte ich geschrieben, wenn du dir die beschriebenen Zeiten anguckst.
Und wie leere gefüllt werden steht auch im Code..
melden
Programmieren: Hilfe & Austausch
20.10.2012 um 16:13
Du hast Dienstags ein bzw. zwei leere Arrays?
melden
Programmieren: Hilfe & Austausch
20.10.2012 um 16:16
Nein, die Tage haben keine eigenen Arrays, das steht aber auch da. Bitte schon Beschreibung lesen und nicht nur den Code, ich erklär das doch nicht weil ich so lustig bin.
Es liegt nicht an den Zeiten, im Code muss irgendwo ein Logikfehler sein.
melden
Programmieren: Hilfe & Austausch
20.10.2012 um 16:40
Keine Ahnung wie das bei JS ist aber arrays starten in der Regel bei 0. Wenn du nur Tag übergibst liegt der in array[0].
0!<0.
for (var i = 0; i < lessons.length; i++)
Die leeren Felder werden einfach übersprungen.
melden
Programmieren: Hilfe & Austausch
20.10.2012 um 16:51
ich habs selbst gefunden, danke
Dr.BT's vorschlag war's nicht :troll:
melden
Programmieren: Hilfe & Austausch
20.10.2012 um 17:57
kennt sich hier jemand mit json aus?
melden