Advertisement
NikaBang

Определение просрочки

Dec 13th, 2022 (edited)
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.74 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. internal class Program
  6. {
  7.     //Есть набор тушенки.У тушенки есть название, год производства и срок годности.
  8.     //Написать запрос для получения всех просроченных банок тушенки.
  9.     //Чтобы не заморачиваться, можете думать, что считаем только года, без месяцев.
  10.  
  11.     static void Main(string[] args)
  12.     {
  13.         Warehouse warehouse = new Warehouse();
  14.         warehouse.RunProgram();
  15.     }
  16.  
  17.     class Stew
  18.     {
  19.         public string Name { get; }
  20.         public DateTime ShelfLife { get; }
  21.         private DateTime _productionDate;
  22.  
  23.         public Stew(int year, int mounth, int day)
  24.         {
  25.             int shelfLifeYears = 2;
  26.             Name = "Тушенка";
  27.             ShelfLife = new DateTime(year + shelfLifeYears, mounth, day);
  28.             _productionDate = new DateTime(year, mounth, day);
  29.         }
  30.  
  31.         public void ShowInfo()
  32.         {
  33.             Console.WriteLine("Дата изготовления: " + _productionDate.ToString("g"));
  34.             Console.WriteLine("Годен до: " + ShelfLife.ToString("g"));
  35.         }
  36.     }
  37.  
  38.     class Warehouse
  39.     {
  40.         private List<Stew> _stews;
  41.         private DateTime _today;
  42.  
  43.         public Warehouse()
  44.         {
  45.             _today = DateTime.Today;
  46.             _stews = new List<Stew>();
  47.  
  48.             Fill();
  49.         }
  50.  
  51.         public void RunProgram()
  52.         {
  53.             bool inProgram = true;
  54.             string commandPointOne = "1";
  55.             string commandExitProgram = "Exit";
  56.  
  57.             while (inProgram)
  58.             {
  59.                 Console.WriteLine("На складе:\n");
  60.  
  61.                 ShowWarehouse();
  62.  
  63.                 Console.Write($"\nЧто бы узнать есть ли просрочка введите - {commandPointOne}" +
  64.                     $"\nЧто бы завершить программу введите - {commandExitProgram}\nВаш выбор: ");
  65.                 string userInput = Console.ReadLine();
  66.                 Console.WriteLine("");
  67.  
  68.                 if (userInput == commandPointOne)
  69.                 {
  70.                     ShowDeadlinesStew();
  71.                 }
  72.                 else if (userInput == commandExitProgram)
  73.                 {
  74.                     Console.WriteLine("Программа завершена.");
  75.                     inProgram = false;
  76.                 }
  77.                 else
  78.                 {
  79.                     Console.WriteLine("Ошибка ввода!");
  80.                 }
  81.  
  82.                 Console.ReadKey();
  83.                 Console.Clear();
  84.             }
  85.         }
  86.  
  87.         private void ShowDeadlinesStew()
  88.         {
  89.             Console.WriteLine("Сегодня - " + _today.ToString("g"));
  90.  
  91.             var spoiledStews = _stews.Where(stew => stew.ShelfLife < _today);
  92.  
  93.             Console.WriteLine("ПРОСРОЧКА:");
  94.  
  95.             foreach (var stew in spoiledStews)
  96.             {
  97.                 stew.ShowInfo();
  98.             }
  99.         }
  100.  
  101.         private void ShowWarehouse()
  102.         {
  103.             foreach (var stew in _stews)
  104.             {
  105.                 stew.ShowInfo();
  106.             }
  107.         }
  108.  
  109.         private void Fill()
  110.         {
  111.             Stew[] stews =
  112.             {
  113.                 new Stew(2020, 04, 14), new Stew(2021, 07, 07),
  114.                 new Stew(2020, 01, 10), new Stew(2019, 06, 21),
  115.                 new Stew(2020, 12, 08), new Stew(2022, 02, 18),
  116.                 new Stew(1991, 01, 01), new Stew(2018, 11, 30)
  117.             };
  118.  
  119.             _stews.AddRange(stews);
  120.         }
  121.     }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement