webForumDet fria alternativet

JScript: Veckonummer

ASP

18 svar · 568 visningar · startad av nill

Medlem sedan okt. 2001387 inlägg
Frågan#1

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

Medlem sedan sep. 2002366 inlägg
#2

Javascript?

Fel forum va? ;)

Medlem sedan mars 20015 287 inlägg
#3

Måste det vara JScript?

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

Medlem sedan juni 200032 967 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,

Medlem 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.

Medlem sedan juni 20004 308 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()+".");

Medlem sedan juli 2000836 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
}
Medlem 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?

Medlem sedan juni 200032 967 inlägg
#9

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

Mvh,

Medlem sedan nov. 20017 144 inlägg
#10

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

Medlem sedan juni 20004 308 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.

Medlem sedan aug. 2002207 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

Medlem sedan feb. 20012 412 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. :)

Medlem sedan aug. 2002207 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. :)

Medlem sedan feb. 20012 412 inlägg
#15

Denniz PoP skrev:

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

Vad är Active Server Pages då :q

Medlem sedan aug. 20013 824 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

Medlem sedan aug. 20013 824 inlägg
#17

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

/ Mikul

Medlem sedan juni 20004 308 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>
Medlem sedan juni 20004 308 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
}
255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)