Funktion um Arbeitstage zu erfassen

Pol

Mitglied
Hallo
Ich möchte die unten stehende Funktion für die folgende Anforderung anpassen. Wie soll ich vorgehen?
Ich habe dynamische Zeilen (standardmässig 5) kann der User aber dynamisch beliebig viele hinzufügen:

Zeile1: 05.01.2012 08:30 (Manually entered)
Zeile2: 06.01.2012 08:30
Zeile3: 07.01.2012 08:30
Zeile4: 12.02.2012 10:15 (Manaully entered)
Zeile5: 13.02.2012 10:15

Die Zeile2 soll den Inhalt der Zeile1 (DateTime) mit +1 (nächste Arbeitstag weekday) füllen.
Wenn der User z.B. die Zeile4 Manuall ändert dann sollen die alle Zeilen ab Zeile4 wieder mit nächsten Arbeitstag erfüllt werden. Die Funktion wird mit Onchange aufgerufen.
Kann ich sowas mit Javascript realisieren? Wo finde ich ähnliche Informationen?

Danke

Beispiel Funktion:
function datumgrid() {

var anzahl=parseInt(document.getElementById("key_count").value);

for (var i=0; i<=anzahl; i++){
var zeilegibtes= document.getElementById("x" + i + "_Stunden");
if(zeilegibtes){

document.getElementById("x" + i + "_Stunden").value = document.getElementById("x" + i + "_Stunden").value +i;
}
}
}
 
Es ist ja kein Kalender.

Hier eine Möglichkeit mit jQuery. Für die Text-Datum Konvertierung habe ich das Script von Matt Kruse verwendet
http://www.mattkruse.com/javascript/date/

Javascript:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<!-- jQuery einbinden -->
<script type="text/javascript" src="jquery/jquery-1.7.2.min.js" ></script>
<!-- Datumsfunktion einbinden (Text -> Datum -> Text) -->
<!-- http://www.mattkruse.com/javascript/date/ -->
<script type="text/javascript" src="date.js" ></script>
<script>

$(function(){
	//Ausführen qwenn ein Datum gesetzt wird
	$('input.myDateField').change(function(){
		//Prüfen obs ein gültiger
		if(!isDate($(this).val(), 'd.M.y')){
			alert($(this).val() + ' is no date');
		}else{
			//Datum auslesen
		    var dat = new Date(getDateFromFormat($(this).val(), 'd.M.y'));
		    //In allen folgezeilen den code ausführen
		    $(this).parent('td').parent('tr').nextAll().each(function(){
		    	//Datum + 1 Tag
		    	dat.setDate(dat.getDate()+1);
		    	//und in die Input-box eintragen
				$(this).children('td').children('input.myDateField').val(formatDate(dat, 'dd.MM.y'));
			});
		}
	});
});
    

</script>

<table>
    <tr>
        <td><span class="id">1</span></td>
        <td><input type="text" class="myDateField" /></td>
    </tr>
    <tr>
        <td><span class="id">2</span></td>
        <td><input type="text" class="myDateField" /></td>
    </tr>
    <tr>
        <td><span class="id">3</span></td>
        <td><input type="text" class="myDateField" /></td>
    </tr>
    <tr>
        <td><span class="id">4</span></td>
        <td><input type="text" class="myDateField" /></td>
    </tr>
    <tr>
        <td><span class="id">5</span></td>
        <td><input type="text" class="myDateField" /></td>
    </tr>
    <tr>
        <td><span class="id">6</span></td>
        <td><input type="text" class="myDateField" /></td>
    </tr>
</table>

</body>
</html>
 
@Yaslaw:
Schon klar, das es kein Kalender ist, aber ich hatte ihn so verstanden, das nur Werktage da eingetragen werden. Und dann benötigt er Funktionen, die auch in einem Kalender sind (Tage des Monats, Aus einem Datum einen Wochentag auslesen u.ä.)
Das was du gepostet hast ist trotzdem Klasse und notwendig hier.
 

Neue Beiträge

Zurück