Avatar billede chris0905 Nybegynder
06. august 2011 - 17:52 Der er 27 kommentarer og
1 løsning

Script til at udregne tid...

Hej Eksperter!

Jeg har brug for et script som kan regne en tid ud fra et starttudspunkt plus to minuttider...

Jeg er selv ikke så stærk i JavaScript, endnu, så ville høre om der var en der havde lyst til at hjælpe mig...

På forhånd tak!

Mvh

Christoffer
Avatar billede olebole Juniormester
06. august 2011 - 18:00 #1
<ole>

Da du har postet dit spørgsmål på Eksperten, kan vi nok betragte dit spørgsmål om, hvorvidt nogen har lyst til at hjælpe, for besvaret.

Så mangler vi bare at få at vide præcist, hvad det er, der skal løses  =)

/mvh
</bole>
Avatar billede chris0905 Nybegynder
06. august 2011 - 18:23 #2
jeg sidder og roder i adobe acrobat x, og et felt skal bruge et script der kan regne en "sluttid" ud fra starttiden og lægge ét antal minutter til og så lægge et andet antal minutter til...

starttid + minutAntal1 + minutAntal2 = Den værdi der skal printes i det her felt...

Håber det giver mening...
Avatar billede olebole Juniormester
06. august 2011 - 18:31 #3
Jamen, det ser helt rigtigt ud. Hvis der er tale om tre minutantal, der skal lægges sammen for at give et fjerde, vil det viste virke helt fint.

Hvis det ikke er tilfældet, må du enten henvende dig til en clairvoyant eller tage dig sammen og bruge den fornødne energi på at beskrive dit problem tydeligt
Avatar billede chris0905 Nybegynder
06. august 2011 - 18:39 #4
Jeg har vist ikke været helt tydelig...

et eksempel:

12:33 + 27 min + 3 min = 13:03

Det skal jo så scriptet regnes med input felter...

starttid + bundtid + opstigningstid

Jeg har ingen anelse om hvordan det gøres i javascript, så håber meget på at du har tid/lyst til at hjælpe.

På forhånd tak...
Avatar billede olebole Juniormester
06. august 2011 - 18:55 #6
Tak, når man ved, om starttid er et Date objekt, et timestamp eller en streng (med kendt formatering) - samt hvad resultatet skal bestå af - kan det lade sig gøre at svare  *o)

I princippet kan du noget i stil med:


var sStartTid = "12:33";
var nBund = 27;
var nOp = 3;

var aStartTid = sStartTid.split(":");
var nStartTim = Number(aStartTid[0]);
var nStartMin = Number(aStartTid[1]);
var nTotMin = nStartMin + nBund + nOp;

var nTotTim = nStartTim + Math.floor(nTotMin/60);
nTotMin = Math.round(nTotMin%60);
if (nTotMin<10) nTotMin = "0" + nTotMin;


alert(nTotTim + ":" + nTotMin);


Hvordan det smartest udformes og indskrives i din bestående kode, har du bedst selv indsigt i
Avatar billede olebole Juniormester
06. august 2011 - 18:59 #7
- men det er stadig uklart, om sStartTid er et egentligt tidspunkt, eller om det er et antal timer og et antal minutter, adskilt af et kolon.

Må resultatet f.eks. kunne ende med at blive 24:23 - eller skal der rettes til 00:23?
Avatar billede olebole Juniormester
06. august 2011 - 19:03 #8
ronols >> Jeg tror, det er det rent aritmetisk/programmatiske, der er problemet. Ikke at det skal gøres i Acrobat  =)
Avatar billede chris0905 Nybegynder
06. august 2011 - 20:14 #9
tusind tak! jeg har lige, at min startid, bund- og opstigningstid ikke er konstante, men står i inputfelter... hvordan får jeg dem inkluderet???

Mht.: "Må resultatet f.eks. kunne ende med at blive 24:23 - eller skal der rettes til 00:23? "
Så skal der helst rettes... da det ér et tidspunkt.

Og, så har olebole helt ret... det er det programmatiske der er mit problem, da jeg ikke er stærk i javascript.
Avatar billede olebole Juniormester
06. august 2011 - 21:03 #10
Jeg har for længe siden kun leget ganske kort med JS i PDF, men jeg mener syntaksen er i stil med:


var sStartTid = this.getField("feltStartTid").value;
var nBund = parseFloat(this.getField("feltBundTid").value);
var nOp = parseFloat(this.getField("feltOpstigTid").value);

// - og rettelse, når resultatet går over kl. 24:00

var nTotTim = (nStartTim + Math.floor(nTotMin/60)) % 24;
if (nTotTim<10) nTotTim = "0" + nTotTim;

Avatar billede chris0905 Nybegynder
06. august 2011 - 21:26 #11
jeg har et problem med "alert"... er der en anden måde at få noget outut??? har prøvet med "print", men der får jeg samme fejl...


Fejlmeddelse:
"ReferenceError: alert is not defined
14:Field:Calculate"
Avatar billede Nicklas_ Nybegynder
06. august 2011 - 22:21 #12
document.write( hvad skal udprintes? fungerer nogenlunde som phps echo, benyt dig af ' eller " hvis det er directe input, men undlad hvis det er variabel );
Avatar billede olebole Juniormester
06. august 2011 - 22:43 #13
hehe ... selvfølgelig! Undskyld  =)


this.getField("feltTotalTid").value = nTotTim + ":" + nTotMin;

Avatar billede chris0905 Nybegynder
06. august 2011 - 22:43 #14
jeg kan stadig ikke få det til at virke...
Avatar billede chris0905 Nybegynder
06. august 2011 - 22:44 #15
ups.. vi skrev vist samtidigt...

hvor skal den stå???
Avatar billede olebole Juniormester
06. august 2011 - 23:02 #16
i stedet for alert'en
Avatar billede olebole Juniormester
06. august 2011 - 23:05 #17
- og strengen, der står i kaldet til getField, er alle steder det aktuelle felts ID
Avatar billede chris0905 Nybegynder
06. august 2011 - 23:20 #18
så den samlede kode skal se sådan ud:


var sStartTid = this.getField("feltStartTid").value;
var nBund = parseFloat(this.getField("feltBundTid").value);
var nOp = parseFloat(this.getField("feltOpstigTid").value);

var aStartTid = sStartTid.split(":");
var nStartTim = Number(aStartTid[0]);
var nStartMin = Number(aStartTid[1]);
var nTotMin = nStartMin + nBund + nOp;

var nTotTim = (nStartTim + Math.floor(nTotMin/60)) % 24;
if (nTotTim<10) nTotTim = "0" + nTotTim;


this.getField("overfladen").value = nTotTim + ":" + nTotMin;
Avatar billede olebole Juniormester
06. august 2011 - 23:28 #19
Ja, det vil jeg mene
Avatar billede chris0905 Nybegynder
06. august 2011 - 23:34 #20
jeg får intet output... kender du noget til acrobat's måde at håndtere scripts?
Avatar billede olebole Juniormester
06. august 2011 - 23:49 #21
Ikke specielt. Det er som sagt længe siden - og da var det ikke meget, jeg fik leget med det.

Du har vel pakket koden ind i en funktion, som du kalder ... eller?
Avatar billede chris0905 Nybegynder
06. august 2011 - 23:52 #22
det må være den jeg har glemt... som sagt er jeg ikke inde i javascript endnu...

kan du give mig sådan en (også)?

på forhånd tak!
Avatar billede olebole Juniormester
06. august 2011 - 23:58 #23
Nej, hvis du er helt spejlblank, hvad angår programmering, giver det ikke mening. Funktionen skal jo også kaldes på en eller anden bruger event.

Du skal ikke have hjælp til en kode. Du skal have hele koden lavet - og indsat. Det kan jeg ikke hjælpe med
Avatar billede chris0905 Nybegynder
07. august 2011 - 00:07 #24
okay... jeg er ikke helt blank...

jeg ville nok sige:


function OverfladeTime() {

var sStartTid = this.getField("feltStartTid").value;
var nBund = parseFloat(this.getField("feltBundTid").value);
var nOp = parseFloat(this.getField("feltOpstigTid").value);

var aStartTid = sStartTid.split(":");
var nStartTim = Number(aStartTid[0]);
var nStartMin = Number(aStartTid[1]);
var nTotMin = nStartMin + nBund + nOp;

var nTotTim = (nStartTim + Math.floor(nTotMin/60)) % 24;
if (nTotTim<10) nTotTim = "0" + nTotTim;


this.getField("overfladen").value = nTotTim + ":" + nTotMin;

}



Men så bliver jeg i tvivl om hvordan jeg skal kalde den... kan man printe den ud som:


print OverfladeTime;



eller er der helt forkert... det er mere hér det står af for mig...
Avatar billede olebole Juniormester
07. august 2011 - 16:22 #25
Nej, med de spørgsmål, du stiller, er det efterhånden ret klart, at du er tæt på spejlblank - og jeg har ikke nok viden om Acrobat's proprietære syntaks til at lave det hele for dig.

Jeg må derfor henvise til de links ronols skrev ovenfor. Han gennemskuede tydeligvis situationen længe før mig  =)
Avatar billede chris0905 Nybegynder
08. august 2011 - 17:53 #26
nå, men tak for din tid! smid et svar...
Avatar billede olebole Juniormester
08. august 2011 - 18:44 #27
Ellers tak. Jeg samler ikke points  =)
Avatar billede chris0905 Nybegynder
09. august 2011 - 11:32 #28
ok. lukker!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester