Табель работника: начало рабочего дня и его окончание - C#
Формулировка задачи:
Здравствуйте , нужна помощь.
Собственно нужно помочь с программой , которая по вводу id будет фиксировать во сколько пришёл работник, id присвоено к фамилии , при повторном вводе , чтобы фиксировалось , время во сколько работник ушёл и высчитывало время , которое он пробыл на работе. Помогите пожалуйста первый раз за бесплатно!
Решение задачи: «Табель работника: начало рабочего дня и его окончание»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace driv
{
class Program
{
static void Main(string[] args)
{
DateTime T1 = new DateTime();
DateTime T2 = new DateTime();
List<Worker> WorkerList = new List<Worker>();
int counter = 0;
do
{
T1 = DateTime.Now;
Console.WriteLine("Введите ID пришедшего работника:");
string id = Console.ReadLine();
counter++;
if (id == "Exit")
break;
int ID = int.Parse(id);
Worker w = new Worker(T1, T2, ((Employee)ID).ToString(), ID);
WorkerList.Add(w);
}
while (counter < 4);
int counter_l = WorkerList.Count;
do
{
T2 = DateTime.Now;
Console.WriteLine("Введите ID ушедшего работника:");
string id = Console.ReadLine();
if (id == "Exit")
break;
int ID = int.Parse(id);
Worker w1=null;
foreach (Worker w in WorkerList)
{
if (((Employee)ID).ToString() == w.Name)
{
w1 = new Worker(w.t1,w.t2,w.Name,w.ID);
break;
}
}
w1.t2 = T2;
TimeSpan workTime = w1.t2.Subtract(w1.t1);
counter_l--;
Console.WriteLine("Работник {0} находился на работе {1}",w1.Name, workTime.ToString(@"hh\:mm\:ss"));
}
while (counter_l > 0);
Console.Read();
}
}
enum Employee : int
{
Иванов=01,
Петров=02,
Сидоров=03,
Васильев=04
}
class Worker:IEnumerable
{
public DateTime t1 { get; set; }
public DateTime t2 { get; set; }
public string Name { get; set; }
public int ID { get; set; }
public Worker(DateTime T1, DateTime T2, string name, int id)
{
t1 = T1;
t2 = T2;
Name = name;
ID = id;
}
public IEnumerator GetEnumerator()
{
return this.GetEnumerator();
}
}
}