Табель работника: начало рабочего дня и его окончание - 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();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы