| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | Problemer med Dato og tid. Fra : Allan Madsen | 
  Dato :  05-02-08 12:30 |  
  |   
            Så har jeg fundet svaret på Find ud af om en givet tid er mellem to 
 andre tider, svaret er DateTimeToJulianDate. Men
 
 Jeg har to felter (maskedit) hvor jeg taster en NatStart tid ind og et 
 hvor jeg taster en NatSlut tid ind i følgende format (HH:00)
 
 NatStart := StrToTime(MaskEdit1.Text+':00');
 
 Men gør jeg overstående bliver datoen bare noget helt andet.
 
 Er der en måde hvor jeg nemt kan sætte datoen og tiden i en TDateTime 
 variabet som jeg så kan bruge via DateTimeToJulianDate til at se om 
 dagsdato og klokkeslet ligger inden for NatStart og NatSlut??
 
 MVH
 Allan Madsen
 
 
  
            
             |   |   
            
        
 
            
         
           Uffe Kousgaard (05-02-2008) 
         
	
            | Kommentar Fra : Uffe Kousgaard | 
  Dato :  05-02-08 13:49 |  
  |   
            "Allan Madsen" <psp@crump.dk> wrote in message 
 news:mn.2aed7d82e21e7f51.87071@crump.dk...
 > Så har jeg fundet svaret på Find ud af om en givet tid er mellem to andre 
 > tider, svaret er DateTimeToJulianDate. Men
 
 Der er noget du helt grundlæggende har misforstået omkring en TDateTime. 
 Dette er allerede en double. Der er ingen grund til at omregne til en anden 
 tidsregning. Heltalsdelen er antallet af dage siden 1-1-1900 eller 
 deromkring. Decimaldelen er tiden, så f.eks. 0.25 svarer til kl 6 om 
 morgenen.
 
 > Jeg har to felter (maskedit) hvor jeg taster en NatStart tid ind og et 
 > hvor jeg taster en NatSlut tid ind i følgende format (HH:00)
 >
 > NatStart := StrToTime(MaskEdit1.Text+':00');
 >
 > Men gør jeg overstående bliver datoen bare noget helt andet.
 
 Det er fordi du kun sætter decimaldelen på denne måde og datoen dermed er 
 dag 0 (dvs omkring år 1900). Brug f.eks. now()+strtotime(.....), hvis det er 
 dags dato. Ellers brug encodedate()+strtotime(.....);
 
 Hilsen
 Uffe
 
 
  
            
             |   |   
            
        
 
            
         
           Allan Madsen (05-02-2008) 
         
	
            | Kommentar Fra : Allan Madsen | 
  Dato :  05-02-08 15:08 |  
  |   
            Efter mange tanker skrev Uffe Kousgaard:
 > "Allan Madsen" <psp@crump.dk> wrote in message 
 > news:mn.2aed7d82e21e7f51.87071@crump.dk...
 >> Så har jeg fundet svaret på Find ud af om en givet tid er mellem to andre 
 >> tider, svaret er DateTimeToJulianDate. Men
 >
 > Der er noget du helt grundlæggende har misforstået omkring en TDateTime. 
 > Dette er allerede en double. Der er ingen grund til at omregne til en anden 
 > tidsregning. Heltalsdelen er antallet af dage siden 1-1-1900 eller 
 > deromkring. Decimaldelen er tiden, så f.eks. 0.25 svarer til kl 6 om 
 > morgenen.
 >
 >> Jeg har to felter (maskedit) hvor jeg taster en NatStart tid ind og et hvor 
 >> jeg taster en NatSlut tid ind i følgende format (HH:00)
 >>
 >> NatStart := StrToTime(MaskEdit1.Text+':00');
 >>
 >> Men gør jeg overstående bliver datoen bare noget helt andet.
 >
 > Det er fordi du kun sætter decimaldelen på denne måde og datoen dermed er dag 
 > 0 (dvs omkring år 1900). Brug f.eks. now()+strtotime(.....), hvis det er dags 
 > dato. Ellers brug encodedate()+strtotime(.....);
 >
 > Hilsen
 > Uffe
 
 Hejsa Uffe, det vil ikke kunne gøre det, da dagslut typisk er dagen 
 efter.
 
 Men jeg tror jeg er tæt på løsningen
 
 Har lavet denne function.
 
 Function FindDagITal(dt : TDateTime) : Integer;
 Var
  ts : String[17];
 Begin
     ts := FloatToStr(DateTimeToJulianDate(dt));
     Result := StrToInt(Copy(ts,(Pos(',',ts)+1),Length(ts)));
 End;
 
 Ok kan derefter bruge den sådan.
   IsNat:= 
 InRange(FindDagITal(Now()),FindDagITal(NatStart),FindDagITal(NatSlut));
 
 Men kan dog se at den ikke altid er SAND, kan se den skifter til FALSK 
 en gang imellem
 
 Måske det er forbi jeg bruger en string?? og returner en integer
 
 
  
            
             |   |   
            
        
 
            
         
            Uffe Kousgaard (05-02-2008) 
         
	
            | Kommentar Fra : Uffe Kousgaard | 
  Dato :  05-02-08 16:03 |  
  |  
 
            "Allan Madsen" <psp@crump.dk> wrote in message 
 news:mn.2b8c7d82117c3f1c.87071@crump.dk...
 >
 > Hejsa Uffe, det vil ikke kunne gøre det, da dagslut typisk er dagen efter.
 Så lægger man 1 til, hvis det er dagen efter.
 > Function FindDagITal(dt : TDateTime) : Integer;
 > Var
 > ts : String[17];
 > Begin
 >    ts := FloatToStr(DateTimeToJulianDate(dt));
 >    Result := StrToInt(Copy(ts,(Pos(',',ts)+1),Length(ts)));
 > End;
 Den er en oplagt kandidat til  http://thedailywtf.com/ og jeg håber, du har 
 en anden levevej end programmering.
 Nu prøver jeg at forklare, hvad det er du har gang i. Du har f.eks. tallene 
 0,20 (kl. 4:48) og 0,192 (kl. 4:36) og ønsker at finde ud af hvilket der er 
 tidligst. Husk at en Tdatetime er grundlæggende en double.
 Efter de har være en tur gennem din funktion kommer du til at sammenligne 
 tallene 20 og 192, hvis vi for et kort øjeblik ser bort fra at du også 
 foretager en konvertering til det Julianske kalendersystem (!!).
 Pludselig er 192 større end 20 og altså senere på dagen. Fordi du ikke har 
 nogen styr på, hvor mange decimaler der er i tallet efter kommaet.
 > Måske det er forbi jeg bruger en string?? og returner en integer
 Ja, og fordi du ikke læser det som jeg og Stig har skrevet til dig. Prøv nu 
 en gang for alle at forstå hvordan en TDateTime virker.
 Hvis du har T1 = 0,8 og T2 = 0,1 og du ved at T2 er senere end T1, evt. 
 dagen efter, så læg 1 til T2, så den bliver 1,1. Nu kan du så sammenligne om 
 dit tidspunkt er mellem T1 og T2.
            
              |   |   
            
        
 
            
         
             Allan Madsen (05-02-2008) 
         
	
            | Kommentar Fra : Allan Madsen | 
  Dato :  05-02-08 17:42 |  
  |  
 
            Efter mange tanker skrev Uffe Kousgaard:
 > "Allan Madsen" <psp@crump.dk> wrote in message 
 > news:mn.2b8c7d82117c3f1c.87071@crump.dk...
 >>
 >> Hejsa Uffe, det vil ikke kunne gøre det, da dagslut typisk er dagen efter.
 >
 > Så lægger man 1 til, hvis det er dagen efter.
 >
 >
 >> Function FindDagITal(dt : TDateTime) : Integer;
 >> Var
 >> ts : String[17];
 >> Begin
 >>    ts := FloatToStr(DateTimeToJulianDate(dt));
 >>    Result := StrToInt(Copy(ts,(Pos(',',ts)+1),Length(ts)));
 >> End;
 >
 > Den er en oplagt kandidat til  http://thedailywtf.com/ og jeg håber, du har en 
 > anden levevej end programmering.
 >
 > Nu prøver jeg at forklare, hvad det er du har gang i. Du har f.eks. tallene 
 > 0,20 (kl. 4:48) og 0,192 (kl. 4:36) og ønsker at finde ud af hvilket der er 
 > tidligst. Husk at en Tdatetime er grundlæggende en double.
 >
 > Efter de har være en tur gennem din funktion kommer du til at sammenligne 
 > tallene 20 og 192, hvis vi for et kort øjeblik ser bort fra at du også 
 > foretager en konvertering til det Julianske kalendersystem (!!).
 >
 > Pludselig er 192 større end 20 og altså senere på dagen. Fordi du ikke har 
 > nogen styr på, hvor mange decimaler der er i tallet efter kommaet.
 >
 >> Måske det er forbi jeg bruger en string?? og returner en integer
 >
 > Ja, og fordi du ikke læser det som jeg og Stig har skrevet til dig. Prøv nu 
 > en gang for alle at forstå hvordan en TDateTime virker.
 >
 > Hvis du har T1 = 0,8 og T2 = 0,1 og du ved at T2 er senere end T1, evt. dagen 
 > efter, så læg 1 til T2, så den bliver 1,1. Nu kan du så sammenligne om dit 
 > tidspunkt er mellem T1 og T2.
 Ok den med at TDateTime var en double, den havde jeg misset
 Men jeg ser stadig ikke hvordan jeg kan gør det
 Min aktuelle tid er lige nu 39483,7324764738 F.eks.
 Og min NatStart siger 0,958333333333333 (Kl 23:00)
 og min NatSlut siger  0,208333333333333 (Kl 05:00)
 Om jeg så ligger en til min NatSlut så kan jeg da alt andet lige se at 
 min aktuelle tid altid vil være større en både NatStart og NatSlut???
 Og ja jeg arbejder IKKE med programmering til daglig. Så jeg prøver 
 efter bedste evne at finde udaf hvad der forgår.
 Og problemet som jeg ser det er jo at jeg ikke har en dato, for den 
 skal bare gøre det dag efter dag og slet ikke kikke på datoen, kun på 
 klokken.
 Det er jo ikke noget den skal gør på en bestemt dato, men inden for et 
 bestemt klokkeslet, men det er Computeren tid der selvf. bestemmer om 
 Nat sænkning er til eller fra, da det er den der skal sætte et port bit 
 høj eller lav.
 Håber dette kastede lidt lys over mit problem og hvad jeg mener.
 MVH
 Allan Madsen
            
              |   |   
            
        
 
            
         
             Allan Madsen (05-02-2008) 
         
	
            | Kommentar Fra : Allan Madsen | 
  Dato :  05-02-08 17:57 |  
  |  
 
            Uffe Kousgaard:
 > "Allan Madsen" <psp@crump.dk> wrote in message 
 > news:mn.2b8c7d82117c3f1c.87071@crump.dk...
 >>
 >> Hejsa Uffe, det vil ikke kunne gøre det, da dagslut typisk er dagen efter.
 >
 > Så lægger man 1 til, hvis det er dagen efter.
 >
 >
 >> Function FindDagITal(dt : TDateTime) : Integer;
 >> Var
 >> ts : String[17];
 >> Begin
 >>    ts := FloatToStr(DateTimeToJulianDate(dt));
 >>    Result := StrToInt(Copy(ts,(Pos(',',ts)+1),Length(ts)));
 >> End;
 >
 > Den er en oplagt kandidat til  http://thedailywtf.com/ og jeg håber, du har en 
 > anden levevej end programmering.
 >
 > Nu prøver jeg at forklare, hvad det er du har gang i. Du har f.eks. tallene 
 > 0,20 (kl. 4:48) og 0,192 (kl. 4:36) og ønsker at finde ud af hvilket der er 
 > tidligst. Husk at en Tdatetime er grundlæggende en double.
 >
 > Efter de har være en tur gennem din funktion kommer du til at sammenligne 
 > tallene 20 og 192, hvis vi for et kort øjeblik ser bort fra at du også 
 > foretager en konvertering til det Julianske kalendersystem (!!).
 >
 > Pludselig er 192 større end 20 og altså senere på dagen. Fordi du ikke har 
 > nogen styr på, hvor mange decimaler der er i tallet efter kommaet.
 >
 >> Måske det er forbi jeg bruger en string?? og returner en integer
 >
 > Ja, og fordi du ikke læser det som jeg og Stig har skrevet til dig. Prøv nu 
 > en gang for alle at forstå hvordan en TDateTime virker.
 >
 > Hvis du har T1 = 0,8 og T2 = 0,1 og du ved at T2 er senere end T1, evt. dagen 
 > efter, så læg 1 til T2, så den bliver 1,1. Nu kan du så sammenligne om dit 
 > tidspunkt er mellem T1 og T2.
 Og nu har jeg sat NatStart til kl 17:00 og NatSlut til 19:00
 NatStart = 0,708333333333333
 NatSlut = 0,791666666666667
 Og min aktuelle tid siger noget i retning af 39483,742952345
 Og har jeg forstået det rigtigt kan jeg smide tallene før kommaet væk, 
 og står så tilbage med Tiden da det før kommaet er Datoen?? er det 
 korrekt??
 hmm ja så ligger 0,742952345 jo også imellem 0,708333333333333 og 
 0,791666666666667
 Og tager jeg så et tidskunkt f.eks 05:00 så ved jeg jo at tallet er 
 næste dag (evt fordi det er mindre end  NatStart) så ligger jeg 1,0 til
 og får jo selvf et tal der er større, men hvad sker der så når PCeren 
 tid kommer på den anden side af midnat??
 Nej må indrømme at jeg ikke kan se mig ud af denne. Heller ikke når jeg 
 tænker efter   
            
             |   |   
            
        
 
            
         
              Ove Kjeldgaard (05-02-2008) 
         
	
            | Kommentar Fra : Ove Kjeldgaard | 
  Dato :  05-02-08 22:16 |  
  |  
 
            Allan Madsen <psp@crump.dk> wrote:
 >Nej må indrømme at jeg ikke kan se mig ud af denne. Heller ikke når jeg 
 >tænker efter   
Jeg vil prøve om jeg selv kan få lidt rede på dit natsænkningsproblem.
 Og jeg vil i første omgang se bort fra ugedage, weekend osv. men udelukkende
 prøve at få hold på et sæt start/stop tidspunkter.
 I det følgende bruger jeg brøkdelen af Now som AktuelTid.
 Hvis vi tager dine første klokkeslæt:
 >Og min NatStart siger 0,958333333333333 (Kl 23:00)
 >og min NatSlut siger  0,208333333333333 (Kl 05:00)
 Her er NatSlut MINDRE end NatStart, så der skal der testes for om AktuelTid er
 større end NatStart ELLER AktuelTid er mindre end NatSlut. 
 Det andet sæt klokkeslæt:
 >Og nu har jeg sat NatStart til kl 17:00 og NatSlut til 19:00
 >NatStart = 0,708333333333333
 >NatSlut = 0,791666666666667
 Her er NatSlut STØRRER end NatStart, så der skal der testes for om AktuelTid er
 større end NatStart OG AktuelTid er mindre end NatSlut.
 -- 
   Med venlig hilsen, Ove Kjeldgaard
   Ved e-mail svar: Skift ciffer ud med bogstav
   Natur og Friluftsliv: < http://hiker.dk>
            
             |   |   
            
        
 
            
         
              Uffe Kousgaard (05-02-2008) 
         
	
            | Kommentar Fra : Uffe Kousgaard | 
  Dato :  05-02-08 22:42 |  
  |  
 
            "Allan Madsen" <psp@crump.dk> wrote in message 
 news:mn.2c347d82290fa6fe.87071@crump.dk...
 >
 > Nej må indrømme at jeg ikke kan se mig ud af denne. Heller ikke når jeg 
 > tænker efter   
Hvis både start og slut er før eller efter midnat:
 If (natstart<natslut) and inrange(frac(tid),natstart,natslut)) then ....
 Hvis start er før midnat og slut er efter midnat:
 If (natstart>natslut) and ((frac(tid)>natstart) or (frac(tid)<natslut)) then 
 .....
            
              |   |   
            
        
 
            
         
           Allan Madsen (05-02-2008) 
         
	
            | Kommentar Fra : Allan Madsen | 
  Dato :  05-02-08 23:16 |  
  |   
            Tusinde mange gange tak for hjælpen, kan jo godt se nu, at jeg havde 
 gjort det meget mere besværlig end det egentlig er / var.
 
 Så igen TAK til alle for hjælpen.
 
 -- 
 -----
 Med venlig hilsen
 Allan Madsen
 
 
  
            
             |   |   
            
        
 
            
         
           Stig Johansen (06-02-2008) 
         
	
            | Kommentar Fra : Stig Johansen | 
  Dato :  06-02-08 07:56 |  
  |   
            Allan Madsen wrote:
 
 > Tusinde mange gange tak for hjælpen, kan jo godt se nu, at jeg havde
 > gjort det meget mere besværlig end det egentlig er / var.
 > 
 > Så igen TAK til alle for hjælpen.
 
 Lige et sidste hint.
 Jeg plejer at styre schedulerede programmer på sekundet,
 Til det brug har jeg en eller anden for for timer loop, kærer hvert sekund.
 
 Tager vi udgangspunkt i
 > 0,208333333333333 (Kl 05:00)
 
 Så er antal sekunder siden midnat 5*60*60 = 18000 sek.
 Som nævnt i min anden post : 0,20833333333333 * 86400 ~ 18000 sek.
 Det er en smagssag om man vil bruge minutter,sekunder osv
 Men i mine systemer læser jeg start of slut ind fra en config fil, og der
 synes jeg det er mere overskuelig at bruge sekunder.
 
 -- 
 Med venlig hilsen
 Stig Johansen
  
            
             |   |   
            
        
 
            
         
           Flozzy (07-02-2008) 
         
	
            | Kommentar Fra : Flozzy | 
  Dato :  07-02-08 06:12 |  
  |   
            Hej Allan
 
 "Allan Madsen" <psp@crump.dk> skrev i en meddelelse 
 news:mn.2aed7d82e21e7f51.87071@crump.dk...
 > Så har jeg fundet svaret på Find ud af om en givet tid er mellem to andre 
 > tider, svaret er DateTimeToJulianDate. Men
 >
 > Jeg har to felter (maskedit) hvor jeg taster en NatStart tid ind og et 
 > hvor jeg taster en NatSlut tid ind i følgende format (HH:00)
 >
 > NatStart := StrToTime(MaskEdit1.Text+':00');
 >
 > Men gør jeg overstående bliver datoen bare noget helt andet.
 >
 > Er der en måde hvor jeg nemt kan sætte datoen og tiden i en TDateTime 
 > variabet som jeg så kan bruge via DateTimeToJulianDate til at se om 
 > dagsdato og klokkeslet ligger inden for NatStart og NatSlut??
 >
 > MVH
 > Allan Madsen
 >
 >
 
 Hvis datoen ingen betydning har, kan du gøre det enkelt og overskueligt vha. 
 DecodeTime i din OnTimer Event, f.eks.
 
 var Hour, Min, Sec, MSec: Word;
 begin
   DecodeTime(Now, Hour, Min, Sec, MSec);
   if Hour  = 23 then
     NatStart := True
   else
   if Hour = 05 then
     NatStart := False;
 end;
 
 Bare et forslag!
 
 Mvh. Flozzy 
 
 
  
            
             |   |   
            
        
 
            
         
           Allan Madsen (07-02-2008) 
         
	
            | Kommentar Fra : Allan Madsen | 
  Dato :  07-02-08 08:46 |  
  |   
            Flozzy:
 > Hej Allan
 >
 > "Allan Madsen" <psp@crump.dk> skrev i en meddelelse 
 > news:mn.2aed7d82e21e7f51.87071@crump.dk...
 >> Så har jeg fundet svaret på Find ud af om en givet tid er mellem to andre 
 >> tider, svaret er DateTimeToJulianDate. Men
 >>
 >> Jeg har to felter (maskedit) hvor jeg taster en NatStart tid ind og et hvor 
 >> jeg taster en NatSlut tid ind i følgende format (HH:00)
 >>
 >> NatStart := StrToTime(MaskEdit1.Text+':00');
 >>
 >> Men gør jeg overstående bliver datoen bare noget helt andet.
 >>
 >> Er der en måde hvor jeg nemt kan sætte datoen og tiden i en TDateTime 
 >> variabet som jeg så kan bruge via DateTimeToJulianDate til at se om 
 >> dagsdato og klokkeslet ligger inden for NatStart og NatSlut??
 >>
 >> MVH
 >> Allan Madsen
 >>
 >>
 >
 > Hvis datoen ingen betydning har, kan du gøre det enkelt og overskueligt vha. 
 > DecodeTime i din OnTimer Event, f.eks.
 >
 > var Hour, Min, Sec, MSec: Word;
 > begin
 >   DecodeTime(Now, Hour, Min, Sec, MSec);
 >   if Hour  = 23 then
 >     NatStart := True
 >   else
 >   if Hour = 05 then
 >     NatStart := False;
 > end;
 >
 > Bare et forslag!
 >
 > Mvh. Flozzy
 
 Hejsa Flozzy
 
 Men som jeg ser det så er der ikke minutter med (Men er jo simpel) at 
 sætte på, men et andet problem, er det ikke at den kun gælder når kl er 
 23??? Og hvad sker der når kl er 24, så den vil jo aldrig komme ned og 
 sætte den false??
 
 Har jeg ret i det??
 
 
  
            
             |   |   
            
        
 
            
         
            Flozzy (07-02-2008) 
         
	
            | Kommentar Fra : Flozzy | 
  Dato :  07-02-08 11:07 |  
  |   
             Hejsa Flozzy
 >
 > Men som jeg ser det så er der ikke minutter med (Men er jo simpel) at 
 > sætte på, men et andet problem, er det ikke at den kun gælder når kl er 
 > 23??? Og hvad sker der når kl er 24, så den vil jo aldrig komme ned og 
 > sætte den false??
 >
 > Har jeg ret i det??
 >
 >
 
 Nej, jeg har ikke taget minutter med, da den skifter til 23 i samme 
 splitsekund, som klokken bliver 23:00:00.
 
 Ved alle andre klokkeslet indtil 05:00:00 vil NatStart forblive True. 
 Derefter bliver den False, og det bliver den ved med indtil næste 23:00:00.
 
 Mvh. Flozzy 
 
 
  
            
             |   |   
            
        
 
            
         
             Allan Madsen (07-02-2008) 
         
	
            | Kommentar Fra : Allan Madsen | 
  Dato :  07-02-08 13:28 |  
  |   
            Følgende er skrevet af Flozzy:
 >  Hejsa Flozzy
 >>
 >> Men som jeg ser det så er der ikke minutter med (Men er jo simpel) at sætte 
 >> på, men et andet problem, er det ikke at den kun gælder når kl er 23??? Og 
 >> hvad sker der når kl er 24, så den vil jo aldrig komme ned og sætte den 
 >> false??
 >>
 >> Har jeg ret i det??
 >>
 >>
 >
 > Nej, jeg har ikke taget minutter med, da den skifter til 23 i samme 
 > splitsekund, som klokken bliver 23:00:00.
 >
 > Ved alle andre klokkeslet indtil 05:00:00 vil NatStart forblive True. 
 > Derefter bliver den False, og det bliver den ved med indtil næste 23:00:00.
 >
 > Mvh. Flozzy
 
 Ok og hvis man så ønsker at start tiden er 23:30 og slut tiden er 5:30 
 så virker den jo ikke andet end at man også har minutterne med ikke 
 sandt???
 
 
  
            
             |   |   
            
        
 
            
         
              Flozzy (07-02-2008) 
         
	
            | Kommentar Fra : Flozzy | 
  Dato :  07-02-08 13:31 |  
  |   
            
 "Allan Madsen" <psp@crump.dk> skrev i en meddelelse 
 news:mn.3b287d8240684e69.87071@crump.dk...
 > Følgende er skrevet af Flozzy:
 >>  Hejsa Flozzy
 >>>
 >>> Men som jeg ser det så er der ikke minutter med (Men er jo simpel) at 
 >>> sætte på, men et andet problem, er det ikke at den kun gælder når kl er 
 >>> 23??? Og hvad sker der når kl er 24, så den vil jo aldrig komme ned og 
 >>> sætte den false??
 >>>
 >>> Har jeg ret i det??
 >>>
 >>>
 >>
 >> Nej, jeg har ikke taget minutter med, da den skifter til 23 i samme 
 >> splitsekund, som klokken bliver 23:00:00.
 >>
 >> Ved alle andre klokkeslet indtil 05:00:00 vil NatStart forblive True. 
 >> Derefter bliver den False, og det bliver den ved med indtil næste 
 >> 23:00:00.
 >>
 >> Mvh. Flozzy
 >
 > Ok og hvis man så ønsker at start tiden er 23:30 og slut tiden er 5:30 så 
 > virker den jo ikke andet end at man også har minutterne med ikke sandt???
 >
 >
 
 Jo, og det er der ingen ben i!
 
 Mvh. Flozzy
 
 
  
            
             |   |   
            
        
 
            
         
               Allan Madsen (07-02-2008) 
         
	
            | Kommentar Fra : Allan Madsen | 
  Dato :  07-02-08 13:39 |  
  |   
            Flozzy skrev:
 > "Allan Madsen" <psp@crump.dk> skrev i en meddelelse 
 > news:mn.3b287d8240684e69.87071@crump.dk...
 >> Følgende er skrevet af Flozzy:
 >>>  Hejsa Flozzy
 >>>>
 >>>> Men som jeg ser det så er der ikke minutter med (Men er jo simpel) at 
 >>>> sætte på, men et andet problem, er det ikke at den kun gælder når kl er 
 >>>> 23??? Og hvad sker der når kl er 24, så den vil jo aldrig komme ned og 
 >>>> sætte den false??
 >>>>
 >>>> Har jeg ret i det??
 >>>>
 >>>>
 >>>
 >>> Nej, jeg har ikke taget minutter med, da den skifter til 23 i samme 
 >>> splitsekund, som klokken bliver 23:00:00.
 >>>
 >>> Ved alle andre klokkeslet indtil 05:00:00 vil NatStart forblive True. 
 >>> Derefter bliver den False, og det bliver den ved med indtil næste 
 >>> 23:00:00.
 >>>
 >>> Mvh. Flozzy
 >>
 >> Ok og hvis man så ønsker at start tiden er 23:30 og slut tiden er 5:30 så 
 >> virker den jo ikke andet end at man også har minutterne med ikke sandt???
 >>
 >>
 >
 > Jo, og det er der ingen ben i!
 >
 > Mvh. Flozzy
 
 Nej der er jo bare en and på minutterne
 
 
  
            
             |   |   
            
        
 
            
         
                Flozzy (07-02-2008) 
         
	
            | Kommentar Fra : Flozzy | 
  Dato :  07-02-08 13:44 |  
  |   
            
 "Allan Madsen" <psp@crump.dk> skrev i en meddelelse 
 news:mn.3b327d8231eeb149.87071@crump.dk...
 > Flozzy skrev:
 >> "Allan Madsen" <psp@crump.dk> skrev i en meddelelse 
 >> news:mn.3b287d8240684e69.87071@crump.dk...
 >>> Følgende er skrevet af Flozzy:
 >>>>  Hejsa Flozzy
 >>>>>
 >>>>> Men som jeg ser det så er der ikke minutter med (Men er jo simpel) at 
 >>>>> sætte på, men et andet problem, er det ikke at den kun gælder når kl 
 >>>>> er 23??? Og hvad sker der når kl er 24, så den vil jo aldrig komme ned 
 >>>>> og sætte den false??
 >>>>>
 >>>>> Har jeg ret i det??
 >>>>>
 >>>>>
 >>>>
 >>>> Nej, jeg har ikke taget minutter med, da den skifter til 23 i samme 
 >>>> splitsekund, som klokken bliver 23:00:00.
 >>>>
 >>>> Ved alle andre klokkeslet indtil 05:00:00 vil NatStart forblive True. 
 >>>> Derefter bliver den False, og det bliver den ved med indtil næste 
 >>>> 23:00:00.
 >>>>
 >>>> Mvh. Flozzy
 >>>
 >>> Ok og hvis man så ønsker at start tiden er 23:30 og slut tiden er 5:30 
 >>> så virker den jo ikke andet end at man også har minutterne med ikke 
 >>> sandt???
 >>>
 >>>
 >>
 >> Jo, og det er der ingen ben i!
 >>
 >> Mvh. Flozzy
 >
 > Nej der er jo bare en and på minutterne
 >
 >
 
 Ja, og sekunderne også, hvis du skulle have lyst eller brug for det!
 
 Mvh. Flozzy 
 
 
  
            
             |   |   
            
        
 
            
         
           Allan Madsen (07-02-2008) 
         
	
            | Kommentar Fra : Allan Madsen | 
  Dato :  07-02-08 14:15 |  
  |   
            Allan Madsen skrev:
 > Så har jeg fundet svaret på Find ud af om en givet tid er mellem to andre 
 > tider, svaret er DateTimeToJulianDate. Men
 >
 > Jeg har to felter (maskedit) hvor jeg taster en NatStart tid ind og et hvor 
 > jeg taster en NatSlut tid ind i følgende format (HH:00)
 >
 > NatStart := StrToTime(MaskEdit1.Text+':00');
 >
 > Men gør jeg overstående bliver datoen bare noget helt andet.
 >
 > Er der en måde hvor jeg nemt kan sætte datoen og tiden i en TDateTime 
 > variabet som jeg så kan bruge via DateTimeToJulianDate til at se om dagsdato 
 > og klokkeslet ligger inden for NatStart og NatSlut??
 >
 > MVH
 > Allan Madsen
 
 Så min løsning er blevet
 
 DecodeTime(Now, Hour, Min, Sec, MSec);
   if (Hour = StrToInt(Copy(NatStart,1,2))) And (Min =  
 StrToInt(Copy(NatStart,4,2))) then
     IsNat := True
   else
   if (Hour = StrToInt(Copy(NatSlut,1,2))) And (Min = 
 StrToInt(Copy(NatSlut,4,2))) then
     IsNat := False;
 
 Da tiden indateres som f.eks 23:30 og 05:00
 
 Mange tak for den store hjælp til alle.
 
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |