Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Datumfunktioner i Delphi - del1

Postad 2003-01-19 av Pelle Johansson i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 4184, Betyg: 79%

Förord

Denna kurs är del1 om delphis datumfunktioner. I del1 kommer jag bara ta upp dom viktigaste och vanligaste funktionerna, och i del2 kommer jag göra ett litet program med dessa funktioner. Delphi har en hel del datumfunktioner, tex TimeToStr(),DateToStr(),DayOfTheWeek(),WeekOfTheYear() osv. (Artikeln är skriven av Björn Johansson)
Innehåll
  » Intro
  » Dagens datum och tid
  » Dagens namn
  » årets vecka
  » Årets månad
  » Vilket år är det?
  » tid imellan två datum
  » Jämför två datum
  » Månadens datum
  » Antal dagar i en månad
  » Är året ett skottår?
  » sammanfattning


Intro

Nästan alla datumfunktioner som jag kommer ta upp ligger i unit 'DateUtils'
Och för att kunna använda dessa funktioner måste du inkludera DateUtils nästan högst upp i Uses:


Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,DateUtils;


Så ska det se ut för att du ska kunna använda dessa funktioner.


Dagens datum och tid

För att skriva ut Datum och tid så kan du lägga ut en label på din form och dubbelklicka på
formen och skriv in:


Label1.caption := 'dagens datum är: ' + DateToStr(now) + ' och klockan är ' + TimeToStr(now);


DateTostr(now) skriver ut dagens datum och TimeToStr(now) skriver ut klockslaget, i denna kod
skriver TimeToStr(now) ut tiden då du startar ditt program eftersom det ligger i:
procedure TForm1.FormCreate(Sender: TObject);

Exempel på utdata: dagens datum är: 2003-01-17 och klockan är 22:54:40

En annan function du kan använda är DateTimeToStr() vilket gör samma sak fast det bara är ett funktionsanrop.
Exempel på hur du använder den:


Label1.Caption := DateTimeToStr(now)


Exempel på utdata: 2003-01-17 22:53:38


Dagens namn

För att skriva ut dagens namn behövs en array som vi tex kallas Dag och så definerar vi arrayen:


var
Dag: Array[1..7] of string;

Sen ska vi fylla hela arrayen Dag med veckans dagar:


dag[1] := 'måndag';
dag[2] := 'tisdag';
dag[3] := 'onsdag';
dag[4] := 'torsdag';
dag[5] := 'fredag';
dag[6] := 'lördag';
dag[7] := 'söndag';

Och sen ska vi skriva ut dagens namn:


Label1.Caption := dateToStr(now) + ' är en ' + dag[DayOfTheWeek(now)];

Rita ut en Label och kör så kommer du förhoppningsvis(om du har gjort rätt) se dagens namn.
DayOfTheWeek är den funktionen som retunerar en siffra som vi sen genom arrayen tar vara på den siffran och "översätter" till dagens namn.
alltså om DayOfTheWeek retunerar en sjua blir det söndag, en etta blir det måndag osv

exempel på utdata: Lördag


årets vecka

För att skriva ut vilken vecka det är på året kan man använda funktionen WeekOfTheyear() som retunerar veckans nummer.

exempel:


label1.Caption := floatToStr(WeekOfTheyear(now));

Rita ut en label och kör.
Här använder vi först floatToStr() funktionen eftersom WeekOfTheyear returerar värden av typen Word.
Sen så använder vi funktionen WeekOfTheyear().
Vi skriver Now för att få vecken NU.
men om vi vill ha vilken vecka det var år 100 skriver vi 100 där istället.

exempel på utdata: 3


Årets månad

För att ta reda på årets månad just nu kan vi använda MonthOfTheYear() funktionen.
Den fungerar likadant som DayofTheWeek-funktionen.
alltså du lägger månaderna i en array:


var
month:ARRAY[1..12] of string;
begin
//fyll arrayen med månaderna:
month[1] := 'Januari';
month[2] := 'februari';
month[3] := 'mars';
month[4] := 'april';
month[5] := 'maj';
month[6] := 'juni';
month[7] := 'juli';
month[8] := 'agusti';
month[9] := 'september';
month[10] := 'oktober';
month[11] := 'november';
month[12] := 'december';
//skriv ut vilken månad det är just nu:
Label1.Caption := month[MonthOfTheYear(now)];
end;


exempel på utdata: Januari


Vilket år är det?

Vill du bara skriva ut året? då passar CurrentYear funktionen perfekt.
CurrentYear returerar ett värde av typen word vilket gör att vi måste skriva:


Label1.caption := floatToStr(CurrentYear);

CurrentYear returerar en fyrsiffrigt tal om vilket år det är just nu.

Exempel på utdata: 2003


tid imellan två datum


Dagar imellan:
vill du veta hur många dagar det är mellan två datum? då har du funktionen DaysBetween.
DaysBetween returerar ett värde av Integer, och man måste jämnföra mellan två giltiga datum.
exempel:


Label1.Caption := IntToStr(DaysBetween(StrToDate('2003-01-17'),StrToDate('2003-01-19')));

Exempel på utdata: 2

Eftersom DaysBetween returerar ett värde av typen Integer måste man använda IntToStr() funktionen för att kunna skriva på label1. Man måste skriva in giltiga datum(Tdate) så kan man skriva StrToDate('ditt datum'), likadant på nästa parameter.
StrToDate gör om din sträng till ett datum.

Veckor imellan
Vill du veta antal veckor mellan två datum Kan du använda WeeksBetween

Exempel:


showmessage(IntToStr(WeeksBetween(now,StrToDate('2003-02-13'))));

WeeksBetween() returerar ett värde av typen Integer vilket gör att du måste använda intToStr för att kunna skriva ut värdet du får tillbaka på en label eller något liknande.

Exempel på utdata: 3

Denna funktion fungerar som DaysBetween. Alltså skriv in två giltiga datum(Tdate) som parametrar och få ut hur många veckor det är mellan dom två datumena

Se även:
YearsBetween
HoursBetween
MinutesBetween
MonthsBetween


Jämför två datum

Om du vill jämföra två datum Kan du använda CompareDate()
Om datumena är lika så returnerar funktionen 0, -1 om andra datumet är högre än första datumet och 1 om datumet är mindre än första datumet

Exempel:


if CompareDate(StrToDate('2003-01-13'),strToDate('2003-01-14')) = -1 then
Label1.caption := 'Datumet är större';

if CompareDate(StrToDate('2003-01-13'),strToDate('2003-01-12')) = 1 then
Label1.caption := 'Datumet är mindre';

if CompareDate(StrToDate('2003-01-13'),strToDate('2003-01-13')) = 0 then
Label1.caption := 'båda datumena är lika';


Månadens datum

Vill du bara få ut vilken dag det är denna månad?
Då kan du använda DayOf()
Dayof() returerar ett värde av typen Word. värdet kan bestå av tal mellan 1 och 31

Exempel:


showmessage('Idag är det den ' + floattostr(dayof(now)));

Eftersom dayof() returerar ett värde av typen word måste vi använda floattostr()
now betyder att vi ska ta tiden NU

Exempel på utdata: Idag är det den 18

Se även:
HourOf
MinuteOf
MonthOf
SecondOf
TimeOf
WeekOf
YearOf


Antal dagar i en månad

Om du vill få reda på antal dagar i en månad kan du använda DaysInAMonth().
DaysInAMonth() returerar ett värde av typen Word
Först ska man skriva in vilket år man vill kolla(1-9999), sen vilken månad(1-12)
Så om man vill ha ut hur många dagar det är i januari detta år skriver man:


showmessage(FloatToStr(DaysInaMonth(CurrentYear,1)))

Exempel på utdata: 31

Kolla även in funktionen DaysInYear() som funkar likadant som DaysInAYear fast du skriver bara året du vill kolla.
Och den returerar ett värde av typen Word vilket gör att du måste använda floatToStr()

Litet exempel på den funktionen:


showmessage(FloatToStr(DaysinYear(CurrentYear)))


Är året ett skottår?

Vill du veta om ett år är ett skottår?
Då finns funktionen IsLeapYear().
IsLeapYear returerar True eller False.
True om det är ett skottår och False om det inte är ett skottår.

Exempel:

If IsLeapYear(Currentyear) then
showmessage('Är ett skottår')
else
showmessage('Är inte ett skottår');


Exempel på utdata: Är inte ett skottår


sammanfattning

Du har nu lärt dig några av delphis datumfunktioner.
Dom du har lärt dig är:
DateToStr
TimeToStr
DateTimeToStr
DayOfTheWeek
WeekOfTheyear
MonthOfTheYear
CurrentYear
DaysBetween
WeeksBetween
YearsBetween
HoursBetween
CompareDate
dayof
DaysInaMonth
DaysinYear
IsLeapYear

I nästa del kommer jag göra ett program med dessa funktioner du just har läst om.
Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 159
27 952
271 704
915
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies