Avatar billede perolsen Novice
19. maj 2002 - 08:00 Der er 12 kommentarer og
1 løsning

arbejdstid

Hjælp Hjælp Hjælp
Jeg vil godt lave et program som der kan regne enes arbejdstid ud
På den måde at man skriver sin tid hver dag ex
Mandag 7.05 - 16.15  = 9 timer & 10 minutter
Tirsdag 7.00 - 16.30  = 9 timer & 30 minutter
Onsdag 7.10 - 17.45  = 9 timer & 35 minutter
Torsdag 6.57 - 15.15  = 9 timer & 12 minutter

Tiden for hver dag skal kunnes gemmes i en file gerne i en  report
og så når ugen er omme skal man kunne printe alle data ud samles

På forhånd tak
Avatar billede friiser Nybegynder
19. maj 2002 - 09:31 #1
Det behøver du ikke et program til. Det kan du lave i MS Excel.

Eller kan du kigge på www.downloads.com

~friiser~

http://www.radio-online.dk
Avatar billede stoney Nybegynder
19. maj 2002 - 10:39 #2
Vil du kun gemme tiderne for 1 uge eller vil du gemme alle tider løbende ?

Stoney
Avatar billede hermandsen Juniormester
19. maj 2002 - 11:08 #3
Hvis du bruger TDateTime-typen, så kan du udregne det sådan.

TDateTime er sådan set bare en Double som du kan regne med. Den er opbygget således:

En dag = 1
En time = 1/24
Et minut = 1/24/60
Et sekund = 1/24/60/60
Et milisekund = 1/24/60/60/1000

Så burde du med lidt matematik kunne udregne hvor mange arbejdstimer du har brugt.

//hermandsen
Avatar billede martinlind Nybegynder
19. maj 2002 - 11:26 #4
Du skal kigge på D6 der er en helt nye DateTime rutiner og noge der regner ud hvor mange min. der er mellem to tider

/Martin
Avatar billede borrisholt Novice
19. maj 2002 - 11:40 #5
det nemmeste er hvis du lader dit program beregne tiden for dig .. Du åbner programmer når du møder og lukker det når du går hjem ..
Avatar billede perolsen Novice
19. maj 2002 - 11:50 #6
Ja det ser jo godt nok ud alt sammen
Men er der ikke en der har en program kode så jeg kan se hvordan man gør
TAK
Avatar billede hermandsen Juniormester
19. maj 2002 - 11:57 #7
Borrisholt's ide er faktisk ret god...

private
  Tid: Cardinal;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Tid := GetTickCount;
end;

procedure TForm1.ButtonStopClick(Sender: TObject);
begin
  Tid := GetTickCount - Tid;
  Caption := Format('Du har arbejdet i: %d timer, %d minutter, %d sekunder og %d milisekunder. GÅ HJEM OG SLAP AF!!!', [Tid div (1000*60*60), (Tid div (1000*60)) mod 60, (Tid div 1000) mod 60, Tid mod 1000]);
end;

//hermandsen
Avatar billede martinlind Nybegynder
19. maj 2002 - 12:00 #8
Der er tusind måder at gøre det på, der er sådan lidt smag og behag

VAR
  SlutTid,
  StartTid,
  ArbTid : TDateTime;

procedure MyMainFormOnCreate( Sender : TObject );
begin
  StartTid := Now;
end;

procedure MyMainFormOnDestroy( Sender : TObject );
begin
  SlutTid := Now;
  ArbTid := MinutesBetween(StartTid,StutTid);
  // Gem tider, evt. i en flad fil, eller en DB
end;

/Martin
Avatar billede borrisholt Novice
19. maj 2002 - 12:49 #9
jeg har hacket en lille dims sammen som viser grund princippet. Den er ikke gennem testet på nogen måde .... Men den viser basic

Du kan hente den på http://borrisholt.com/eksperten/DIMS.zip

Jens B
Avatar billede perolsen Novice
20. maj 2002 - 06:57 #10
Ideren er gode men det jeg søger er jo to felter hvor man kan skrive  start & sluttid i
Og en felt hvor den kan aflæsset i da jeg skal bruge tiden fra mit stempelkort

På forhånd
Tak
Ps
Helst en programkode
Avatar billede martinlind Nybegynder
20. maj 2002 - 12:24 #11
Form :
-------------------
object Form1: TForm1
  Left = 292
  Top = 111
  Width = 332
  Height = 240
  Caption = 'Form1'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
    Left = 24
    Top = 8
    Width = 36
    Height = 13
    Caption = 'Mødt Kl'
  end
  object Label2: TLabel
    Left = 176
    Top = 8
    Width = 35
    Height = 13
    Caption = 'Gået Kl'
  end
  object Label3: TLabel
    Left = 104
    Top = 96
    Width = 49
    Height = 13
    Caption = 'Har arb i  :'
  end
  object Edit1: TEdit
    Left = 24
    Top = 24
    Width = 121
    Height = 21
    TabOrder = 0
    Text = '01-04-2002 16:45'
  end
  object Edit2: TEdit
    Left = 172
    Top = 24
    Width = 121
    Height = 21
    TabOrder = 1
    Text = '01-04-2002 17:40'
  end
  object Edit3: TEdit
    Left = 104
    Top = 112
    Width = 121
    Height = 21
    TabOrder = 2
    Text = 'Edit3'
  end
  object Button1: TButton
    Left = 124
    Top = 64
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 3
    OnClick = Button1Click
  end
end
--------------

Unit :
---------------------------------
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
VAR
  Strx : String;
begin
  DateTimeToString(Strx,'hh:mm',TimeOf(StrToDateTime(Edit2.Text)-StrToDateTime(Edit1.Text)));
  Edit3.Text := Strx;
end;

end.


/Martin
Avatar billede perolsen Novice
20. maj 2002 - 18:50 #12
Tusind tak hjælpen til martinlind
Hilsen per Olsen
Avatar billede martinlind Nybegynder
20. maj 2002 - 19:06 #13
Selv tak :)
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