Avatar billede steven Nybegynder
24. marts 2003 - 13:47 Der er 43 kommentarer og
1 løsning

Konvertering af tekst til int

Hej X-perter,

Jeg skal have konverteret en dato i tekstformat til et tal, hvordan gør jeg ?

Kode ex.:
//sidste_bet og fakturadato er to datoer gemt som tekst i db'en.
Recordset res;
betalingsfrist = res.getField("sidste_bet") - res.getField("fakturadato");

/Steven
Avatar billede steven Nybegynder
24. marts 2003 - 13:48 #1
betalingsfrist skal være et heltal.
/Steven
Avatar billede riversen Nybegynder
24. marts 2003 - 13:52 #2
hvilket format?
Avatar billede soreno Praktikant
24. marts 2003 - 13:55 #3
int temp = Integer.parseInt(res.getField("sidste_bet"));
Avatar billede riversen Nybegynder
24. marts 2003 - 13:59 #4
Integer.parseInt duer ikke rigtigt til 12-12-2002 fx
Avatar billede svarrenabe Nybegynder
24. marts 2003 - 14:00 #5
Jeg er ikke helt med på hvad det er du vil gøre, du kan ikke konvertere en dato til en talværdi, med mindre den er på formen "2403" så kan du kaste den:
int dato = (int)"2403";
eller
String date = "2403";
int date = (int)date;
Var det sådan noget du tænkte på eller??????
Avatar billede steven Nybegynder
24. marts 2003 - 14:00 #6
res.getField("sidste_bet") og res.getField("fakturadato") returnerer begge en streng.
Denne streng skal konverteres til dato, da det er datoer, som felterne indeholder.
Da jeg skal vide hvormange dage der er mellem de to datoer, skal de trækkes fra hinanden, derfor foreslår jeg at de bliver konverteret til typen int, så de er nemmere at regne med. Hvis der er bedre forslag er jeg lydhør.

/Steven
Avatar billede soreno Praktikant
24. marts 2003 - 14:00 #7
For at gøre det pænt kan du gøre sådan:
try
{
  int temp1 = Integer.parseInt(res.getField("sidste_bet"));
  int temp2 = Integer.parseInt(res.getField("fakturadato"));
  betalingsfrist = temp1 - temp2;
}
catch(NumberFormatException e)
{
  e.printStackTrace();
}
Avatar billede steven Nybegynder
24. marts 2003 - 14:01 #8
riversen>> formatet er "dd-mm-åååå"
Avatar billede miknil Nybegynder
24. marts 2003 - 14:01 #9
Måske :

java.text.DateFormat dateFormatter =
  new java.text.SimpleDateFormat("dd-MM-yyyy HH:mm:ss");

  try
  {
    long aRes = dateFormatter.parse(theFrom).getTime();
  }
  catch(Exception Arrrrrrgh)
  {
    // do something intelligent.
  }

er noget i den stil du søger ?

miknil
Avatar billede steven Nybegynder
24. marts 2003 - 14:02 #10
miknil>> ja, hvis den konverterer datoen til et heltal, men det kan jeg ikke helt gennemskue oom din kode gør.

/Steven
Avatar billede miknil Nybegynder
24. marts 2003 - 14:04 #11
hvor
  theFrom = res.getField("sidste_bet"));

Formatet på datoen i dateFormatter objektet kan tilpasses efter behov,
fx "dd-MM-yyyy" for dd-mm-åååå

miknil
Avatar billede riversen Nybegynder
24. marts 2003 - 14:04 #12
StringTokenizer tokenizer = new StringTokenizer( res.getField( "sidste_bet" ), "-" );

while( tokenizer.hasMoreElements() )
  System.out.println( Integer.parseInt( tokenizer.nextToken() ) );
Avatar billede svarrenabe Nybegynder
24. marts 2003 - 14:05 #13
Se lige på de3tte spørgsmål og svar, måske er det det du skal bruge!!!
http://www.eksperten.dk/spm/325630
Avatar billede miknil Nybegynder
24. marts 2003 - 14:05 #14
Den konverterer til antallet af ms siden d. 1-1-1970, rent faktisk får du
et Date objekt hvor getTime() så henter tiden ud i ms.

miknil
Avatar billede riversen Nybegynder
24. marts 2003 - 14:06 #15
svarrenabe: tjek dit link...det er javascript
Avatar billede riversen Nybegynder
24. marts 2003 - 14:07 #16
hasMoreTokens skulle det nok være :-)
Avatar billede svarrenabe Nybegynder
24. marts 2003 - 14:11 #17
riversen --> ups, var lidt for hurtig der!!! :-) sorry
Avatar billede steven Nybegynder
24. marts 2003 - 14:11 #18
Jeg forsøger mig med miknils svar, jeg vender tilbage når det er testet.
Tak for hjælpen!
/Steven
Avatar billede miknil Nybegynder
24. marts 2003 - 14:11 #19
Kig evt. lidt på dokumentationen til

java.text.SimpleDateFormat

miknil
Avatar billede arne_v Ekspert
24. marts 2003 - 16:54 #20
Dette eksempel ligger 14 dage til en tekst dato:

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

public class NextTwoWeeks {
    public static void main(String[] args) {
        test("2003-03-15", 14);
    }
    private static void test(String start, int days) {
        try {
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            Calendar c = new GregorianCalendar();
            c.setTime(df.parse(start));
            c.add(Calendar.DAY_OF_YEAR, days);
            System.out.println(df.format(c.getTime()));
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}
Avatar billede arne_v Ekspert
24. marts 2003 - 16:55 #21
Det skulle have været et svar.
Avatar billede arne_v Ekspert
27. marts 2003 - 20:08 #22
Kunne du bruge det til noget ?
Avatar billede miknil Nybegynder
27. marts 2003 - 21:23 #23
arne > Dit "svar" var, som ofte, blot en omskrivning af allerede afgivne
løsningsforslag!
Avatar billede arne_v Ekspert
27. marts 2003 - 21:26 #24
Sært - jeg kan ikke se nogen af de andre forslag som bruger Calendar og add !

Kan du ?
Avatar billede arne_v Ekspert
27. marts 2003 - 21:40 #25
Pointen er at man ved at bruge Calendar undgår at skulle regne
i millisekunder siden 1. januar 1970.

Calendar har add og before/after funktioner som gør at man kan
regne i dage.

Jeg tror der er muligheder.
Avatar billede miknil Nybegynder
27. marts 2003 - 21:45 #26
arne>

Til
"Jeg kan ikke se nogen af de andre forslag som bruger Calendar og add "

kan jeg kun sige

Læs spørgsmålet!
Avatar billede arne_v Ekspert
27. marts 2003 - 21:54 #27
Jeg tror stadig at den rigtige måde at vende det på er: gem
faktura data og betalingsfrist og så beregne sidste betalings dag
og test på før eller efter den.

Jeg aner ikke om det passer ind i spørgerens kontekst.

Han må afgøre om han kan bruge ideen til noget.

Og at du ikke kan gennemskue pointen er jo ret ligegyldigt.
Avatar billede miknil Nybegynder
27. marts 2003 - 22:01 #28
Jeg tror du overvurderer egne evner, dit postede eksempel er jo banalt, alle kan vist gennemskue pointen.
Hvad jeg mener er at et "svar" er vel kun berettiget hvis man svarer på spørgsmålet, eller er du uenig i det ?
Avatar billede arne_v Ekspert
27. marts 2003 - 22:06 #29
Ja det er ret banalt.

Derfor undrer det mig også at det er nødvendigt at forklare det
i sådanne detaljer for at du fatter det.

Og jeg er helt uenig.

Det er endda meget almindeligt her på E at komme med svar
a la "det kan ikke lade sig gøre" og "du skal slet ikke gøre det
sådan - prøv istedetfor Y" og et væld af andre svar som ikke er
svar på "hvordan gør jeg X".
Avatar billede miknil Nybegynder
27. marts 2003 - 22:11 #30
Arne>
Jeg er ikke overbevist, dit "svar" burde have været postet som en kommentar.
Det er en skam at man så  ofte oplever her på eksperten at allerede afgivne svar, skal vi kalde det overtages, af andre personer.

Hvad er det forresten du har forklaret i sådanne detaljer ?
Avatar billede arne_v Ekspert
27. marts 2003 - 22:19 #31
Miknil>

Du er ikke engang konsistent i din kritik.

Enten mener du at mit svar er en kopi af dit og så er der et svar på
spørgsmålet.

Eller så mener du at det ikke er et svar på spørgsmålet og så
er det ikke en kopi af dit svar.

Du kan ikke mene begge dele [forudsat at du mener dit eget svar er
et svar på spørgsmålet].

Detaljer er de indtil videre 4-5 kommentarer jeg har måttet
bruge på at forsøge at forklare dig at mit svar faktisk ligger
ret langt fra dit svar.
Avatar billede arne_v Ekspert
27. marts 2003 - 22:21 #32
Jeg er iøvrigt til dels enig i din kritik af "sene meget lignende svar".

Jeg vil ikke engang udelukke at jeg selv kan have forsyndet mig. Jeg
svarer på mange spørgsmål. Det kan kikse med at få læst enten
spørgsmål eller alle svar og kommentarer grundigt nok.

Men jeg kan ikek rigtigt se, at det kan finde anvendelse her.

Hvis spørgeren mener at det svar der giver ham noget er hhvordan man
omregner en streng til antal millisekunder siden 1970, så giver han
formentlig ikke mig nogen point.

Hvis spørgeren mener at Calendar og dens funktionalitet kunne
give anledning til at gribe problemet an på en anden måde, så giver
han sikkert mig nogle point.

Simpelt.
Avatar billede miknil Nybegynder
27. marts 2003 - 22:29 #33
Arne>
Jeg er faktisk ret konsistent i min kritik!

Jeg mener ikke dit "svar" bibringer noget til tråden som ikke allerede har været postet, derfor må dit "svar" opfattes som en kommentar.
Medmindre naturligvis du mener det ikke er under kritik at omskrive et svar for derefter at poste det i eget navn ?

Havde du studeret tråden nøjere ville du desuden have bemærket at jeg ikke har afgivet noget svar.
Avatar billede arne_v Ekspert
27. marts 2003 - 22:50 #34
Så må jeg henvise til en 4-5 indlæg ovenfor som du tilsyneladende
ikke har fattet.

Mit svar ligner ikke noget andre har postet i denne tråd.

Koden er faktisk tyv-stjålet.

Men fra mig selv:
  http://www.eksperten.dk/spm/328410

Jeg kunne se nogle muligheder ved at bruge Calendar og undgå
millisekunderne.

Det kan du ikke se.

Det er jeg fuldstændigt kold overfor.

Om spørgeren kan bruge ideen til noget må han afgøre.
Avatar billede miknil Nybegynder
27. marts 2003 - 22:58 #35
Arne>

Spørgsmålet var:
"Jeg skal have konverteret en dato i tekstformat til et tal, hvordan gør jeg"

Svaret er:
  dateFormatter.parse(dato_i_tekstformat).getTime();

hvilket du selv bruger i dit kopi "svar".

Brugen af Calender er udelukkende støj omkring det egentlige svar på spørgsmålet, at du så har tyvstjålet koden fra dig selv er i den forbindelse ligegyldig.
Avatar billede soreno Praktikant
27. marts 2003 - 23:04 #36
Miknil:

Prøv lige at læs hvad der står her:

Kommentar: steven
24/03-2003 14:00:27

"Da jeg skal vide hvormange dage der er mellem de to datoer, skal de trækkes fra hinanden, derfor foreslår jeg at de bliver konverteret til typen int, så de er nemmere at regne med. Hvis der er bedre forslag er jeg lydhør."

Specielt den sidste sætning.

Det kan da umuligt være støj at komme med et forslag om brug af Calendar.
Avatar billede miknil Nybegynder
27. marts 2003 - 23:07 #37
soreno>
Arne udtaler jo selv i sit 22:21:43 indlæg at han ikke får læst kommentarerne, set i det lys er brugen af Calender støj
Avatar billede arne_v Ekspert
27. marts 2003 - 23:11 #38
miknil>

Du mener at kunne sige at min ide med Calendar er "støj". Jeg mener
det er en ide som jeg vil lade spørgeren om at vurdere. Du er ikke
over-dommer på E. Det er spørgeren der afgør om noget er "støj" eller
har værdi.
Avatar billede arne_v Ekspert
27. marts 2003 - 23:15 #39
miknil>

Og med hensyn til:
#Arne udtaler jo selv i sit 22:21:43 indlæg at han ikke får læst kommentarerne,
#set i det lys er brugen af Calender støj

så er det jo løgn.

Jeg har ikke sagt at jeg ikke har læst kommentarerne i denne tråd.

Jeg udtalte mig generelt om at det kunne hænde at jeg ikke fik
læste spørgsmål og kommentarer grundigt nok.

Det er ikke det samme.
Avatar billede miknil Nybegynder
27. marts 2003 - 23:15 #40
Arne>
Jeg opponerer blot mod eksperten brugere gang på gang poster svar der er, OK, om ikke rene kopier, så kraftigt inspireret af tidligere indlæg.
Avatar billede miknil Nybegynder
27. marts 2003 - 23:17 #41
At du ikke vil tage dig tid til at læse andres indlæg før du selv kaster et svar på banen er efter min mening mangel på respekt.
Avatar billede arne_v Ekspert
27. marts 2003 - 23:23 #42
Det er et synspunkt jeg allerede har erklæret at jeg godt kan tilslutte
mig.

Men:

1) Jeg mener ikke at det her er et sådant tilfælde. Mine ideer ligger
  meget langt fra de andre svar og kommentarer - det er muligt de også
  ligger langt fra hvad spørgeren ønsker - men det må han afgøre.

2) Jeg finder udtalelser som:

arne > Dit "svar" var, som ofte, blot en omskrivning af allerede afgivne
løsningsforslag!

    ret groft !
Avatar billede miknil Nybegynder
27. marts 2003 - 23:28 #43
Tja, .....
Avatar billede steven Nybegynder
14. maj 2003 - 21:23 #44
Har selv løst det på anden måde
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
Kurser inden for grundlæggende programmering

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