/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
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.



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste