webForumDet fria alternativet

JScript: Veckonummer

18 svar · 566 visningar · startad av nill

nillMedlem sedan okt. 2001387 inlägg
#1

Någon som har en bra funktion för att räkna ut vilken vecka det är med JScript?

EitrazMedlem sedan sep. 2002385 inlägg
#2

Javascript?

Fel forum va? ;)

solbulleMedlem sedan mars 20014 998 inlägg
#3

Måste det vara JScript?

vVecka = DatePart("ww", Date(), 2)

@ndersMedlem sedan juni 200026 914 inlägg
#4

I JScript finns ingen funktion för veckonummer, utan det blir nog till att räkna själv, är jag rädd.

Red: Jag passar på att kasta med en länk till Microsofts JScript-referens.

Mvh,

nillMedlem sedan okt. 2001387 inlägg
#5

JScript --> ASP så jag vet inte om det är rätt eller fel forum.. Får väl se om någon flyttar tråden.

Jag vet att det inte finns någon inbyggd funktion. Men någon kanske har snickrat en egen som de kan posta här.

JojoxxMedlem sedan juni 20004 306 inlägg
#6

Det är bökigare än man först tror. Jag har snickrat ihop en prototype. Du får gärna testa och se om du kan hitta någon bug.

Date.prototype.getWeek=function(){
	var nywd=(new Date(this.getFullYear(),0,1).getDay()==0)?7:new Date(this.getFullYear(),0,1).getDay();
	var jan1week=(nywd<5)?1:0;
	if(this.getTime()<new Date(this.getFullYear(),0,9-nywd).getTime()){
		if(jan1week==1){ return 1; }
		nywd=(new Date(this.getFullYear()-1,0,1).getDay()==0)?7:new Date(this.getFullYear()-1,0,1).getDay(); jan1week=(nywd<5)?1:0;
		return(week=Math.ceil((new Date(this.getFullYear()-1,11,31).getTime()-new Date(this.getFullYear()-1,0,9-nywd).getTime())/(1000*60*60*24*7))+jan1week);
	} else {
	 	return(Math.ceil((new Date(this.getFullYear(),this.getMonth(),this.getDate()).getTime()-new Date(this.getFullYear(),0,9-nywd).getTime())/(1000*60*60*24*7))+jan1week);
	}
}

Anropas med;
alert("Det är vecka "+new Date().getWeek()+".");

JohnsenMedlem sedan juli 2000718 inlägg
#7

Vill inte vara petig, men... ;)
31/12 2001 ger v 52. Skall vara v 1

nedan bör funka (bug-kolla gärana)

Date.prototype.getWeek=function(){
	jan1 = (new Date(this.getFullYear(),0,1).getDay()==0)? 7 : new Date(this.getFullYear(),0,1).getDay();
	days = (this-new Date(this.getYear(),0,1)) / (86400000)
	ww   = (jan1<=4)? Math.ceil((days+jan1)/7) : Math.ceil((days+jan1-7)/7);
	if(ww==0){new Date(this.getFullYear(),0,0).getWeek()}
	if(ww==53 && new Date(this.getFullYear()+1,0,1).getDay()<=4){ww=1}
	return ww
}
nillMedlem sedan okt. 2001387 inlägg
#8

det här är skumt:

var d = new Date();
var monad = d.getMonth();
Response.Write (monad);

ger utskriften 10. Ska det inte vara November (11) nu om jag inte minns fel?

@ndersMedlem sedan juni 200026 914 inlägg
#9

Jo, men januari är månad 0.
Det får man leva med. ;)

Mvh,

Jesper TMedlem sedan nov. 20017 058 inlägg
#10

Det är smart när man gör arrayer med månader ju!

JojoxxMedlem sedan juni 20004 306 inlägg
#11

Johnsen skrev:

Vill inte vara petig, men... ;)
31/12 2001 ger v 52. Skall vara v 1

Det är därför man låter andra bugtesta, och det ska vara petigt testat, annars är det ju ingen nytta med det :) Tackar.

Denniz PoPMedlem sedan aug. 2002206 inlägg
#12

nill skrev:

JScript --> ASP så jag vet inte om det är rätt eller fel forum.. Får väl se om någon flyttar tråden.

JScript != ASP

Jörgen HPMedlem sedan feb. 20012 179 inlägg
#13

Denniz PoP skrev:

nill skrev:

JScript --> ASP så jag vet inte om det är rätt eller fel forum.. Får väl se om någon flyttar tråden.

JScript != ASP

JScript hör till ASP lika mycket som VB-Script. ASP är enbart ett samlingsnamn för olika scriptspråk.

RED:

Även om VB-Script är default i de flesta fall. :)

Denniz PoPMedlem sedan aug. 2002206 inlägg
#14

Jörgen HP skrev:

Denniz PoP skrev:

nill skrev:

JScript --> ASP så jag vet inte om det är rätt eller fel forum.. Får väl se om någon flyttar tråden.

JScript != ASP

JScript hör till ASP lika mycket som VB-Script. ASP är enbart ett samlingsnamn för olika scriptspråk.

RED:

Även om VB-Script är default i de flesta fall. :)

Självklart, men VBScript är inte heller ASP. :)

Jörgen HPMedlem sedan feb. 20012 179 inlägg
#15

Denniz PoP skrev:

Självklart, men VBScript är inte heller ASP. :)

Vad är Active Server Pages då :q

mikulMedlem sedan aug. 2001810 inlägg
#16

Ett samlingsnamn=)

Borde det inte gå att spara värdet i en "VB-variabel" och sedan anropa den i JScript??
typ så här:

<%@Language = "JScript"%>

<Script Runat= "server" Language= "VBscript">
      intVecka = DatePart("ww", Date(), 2)
</Script>
<%
Response.Write("Just nu är det vecka " + intVecka + "<br>")
%>

Eller?

/ Mikul

mikulMedlem sedan aug. 2001810 inlägg
#17

hmm...fel tag :e råkade bli PHP...=)

/ Mikul

JojoxxMedlem sedan juni 20004 306 inlägg
#18
<script language="JScript" runat="server">
var datum=new Date().getFullYear()+"-"+(new Date().getMonth()+1)+"-"+new Date().getDate()
</script>

<script language="VBscript" runat="server">
response.write("Dagens datum är "&datum)
</script>
JojoxxMedlem sedan juni 20004 306 inlägg
#19

Johnsen skrev:

Vill inte vara petig, men... ;)
31/12 2001 ger v 52. Skall vara v 1
nedan bör funka (bug-kolla gärana)

Jag får väl peta lite tillbaks ;) Satt och pillade lite med funktionen och såg att det fattas ett return. Prova med ex. 1/1 2005.

Men en rätt intressant grej är ju datum 0, det hade jag faktiskt inte provat förrut.

Date.prototype.getWeek=function(){
	jan1 = (new Date(this.getFullYear(),0,1).getDay()==0)? 7 : new Date(this.getFullYear(),0,1).getDay();
	days = (this-new Date(this.getYear(),0,1)) / (86400000)
	ww   = (jan1<=4)? Math.ceil((days+jan1)/7) : Math.ceil((days+jan1-7)/7);
	if(ww==0){ [b]return[/b] new Date(this.getFullYear(),0,0).getWeek()}
	if(ww==53 && new Date(this.getFullYear()+1,0,1).getDay()<=4){ww=1}
	return ww
}
Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb