Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как вычислить время между одним событием и другим?  (Прочитано 20717 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Ильдар
Участник

kg
Offline Offline

« : 08-05-2009 03:49 » 

Как вычислить время между событиями?
« Последнее редактирование: 08-05-2009 05:38 от Ильдар » Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #1 : 08-05-2009 05:47 » 

записать время первого события и второго
time_b - time_a = time_delta
Записан

Странно всё это....
Ильдар
Участник

kg
Offline Offline

« Ответ #2 : 08-05-2009 05:52 » 

попытался сделать так и вывести разницу на экран
но он написал что не может вычислить разницу между переменными
типа стринг..
а в каком типе надо сохранить время?
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #3 : 08-05-2009 06:18 » 

А зачем время в стрингах(слово-то какое мерзкое) хранишь?
я храню время ли в time_t или в int зависимости от задач.

эх, молодёж, всему вас учить надо.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int result_a = Environment.TickCount & Int32.MaxValue;
            Console.WriteLine("TickCount_a: {0}", result_a);

            Thread.Sleep(1000);

            int result_b = Environment.TickCount & Int32.MaxValue;
            Console.WriteLine("TickCount_b: {0}", result_b);

            Console.WriteLine("TickCount_delta: {0}", result_b - result_a);

        }
    }
}
« Последнее редактирование: 08-05-2009 06:20 от LogRus » Записан

Странно всё это....
Ильдар
Участник

kg
Offline Offline

« Ответ #4 : 08-05-2009 06:27 » 

Так он в типе int тоже отказывается работать...
Пишет что не может вычислить разницу между операндами System.DateTime-int
и мне надо вывести не на консоль а на форму...
вот код
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Timers;

namespace Для_роголёва
{
    public partial class Form1 : Form
    {
        public Color[] arr;

        public Random rand;

        public int zz;

        public int dt;

        public int a;
        public Form1()
        {
           
           
            InitializeComponent();
        }
       
       
       
        public void button1_Click(object sender, EventArgs e)
        {
            Random rand = new Random();
            Color[] arr = new Color[] { Color.Blue, Color.Brown, Color.DarkGray, Color.Green, Color.MistyRose };
            timer1.Start();
            textBox1.BackColor = arr[rand.Next(0, arr.Length)];
           
        }


        public void button2_Click(object sender, EventArgs e)
        {
            timer1.Stop();
        }
        public void timer1_Tick(object sender, EventArgs e)
        {
            Random rand = new Random();
            Color[] arr = new Color[] { Color.Blue, Color.Brown, Color.DarkGray, Color.Green, Color.MistyRose };
           

            textBox1.BackColor = arr[rand.Next(0, arr.Length)];
            if (textBox1.BackColor == Color.Green)
            {
                DateTime dt = DateTime.Now;
               label1.Text = dt.Hour + ":" + dt.Minute + ":" + dt.Second + ":" + dt.Millisecond;
             
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
             DateTime dt = DateTime.Now;
               label1.Text = dt.Hour + ":" + dt.Minute + ":" + dt.Second + ":" + dt.Millisecond;
               DateTime a = new DateTime();
               a = zz - dt;//Ошибка
 label3.Text = a.Hour + ":" + dt.Minute + ":" + dt.Second + ":" + dt.Millisecond;       
       }
         

    }
}
« Последнее редактирование: 08-05-2009 07:19 от LogRus » Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #5 : 08-05-2009 08:44 » 

Ильдар, а ты вобще какой справочной системой пользуешься?

Смотри в сторону MSDN - она несёт разумное доброе вечное.

Например,
http://msdn.microsoft.com/en-us/library/system.aspx

Для структуры DateTime находим:
http://msdn.microsoft.com/en-us/library/system.datetime.aspx

Внимательно читая, находим:
Цитата
DateTime vs. TimeSpan

The DateTime and TimeSpan value types differ in that a DateTime represents an instant in time whereas a TimeSpan represents a time interval. This means, for example, that you can subtract one instance of DateTime from another to obtain a TimeSpan object that represents the time interval between them. Or you could add a positive TimeSpan to the current DateTime to obtain a DateTime value that represents a future date.

Переходим к объекту TimeSpan:
http://msdn.microsoft.com/en-us/library/system.timespan.aspx

Вот примерно так получаются нужные сведения. Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Ильдар
Участник

kg
Offline Offline

« Ответ #6 : 08-05-2009 09:37 » 

Джон, привет!!
Я конечно пользуюсь MSDN...там много полезного пишут..
но всё на английском языке=( я больше по книгам...или такой сайт есть intuit.ru
ну и уж теперь на этом форуме буду почаще бывать=)
Ну а про TimeSpan сейчас зайду на MSDN и почитаю может что нибудь найду...или задам в гугле...
Спасибо за помощь, действительно по человечески приятно когда люди советуют и помогают Да-да
« Последнее редактирование: 08-05-2009 09:39 от Ильдар » Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #7 : 08-05-2009 11:15 » 

MSDN нужен именно для того, чтобы посмотреть как называются объекты, методы, свойства и тд, как они используются. Знания русского (или любого другого национального языка) для этого не требуется. Хотя на сегодняшний день без аглицкого очень сложно, поэтому никуда не денешься. Учить придётся.

В данном случае у тебя опять проблема с пониманием того что ты делаешь, а не с незнанием синтаксиса языка.
Смотри что ты написал:

a = zz - dt;

Какого типа у тебя а, а какого zz? А dt? Ты пытаешься из целочисленного объекта вычесть объект типа DateTime!!! При этом надеясь получить опять таки объект DateTime. Как ты себе это представляешь? Что будет если из 22 отнять 29 февраля 2000 года?

Ещё раз - расписывай сначала алгоритм человеческими словами, тогда у тебя не будет подобных бестолковых ошибок.
« Последнее редактирование: 08-05-2009 11:20 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Ильдар
Участник

kg
Offline Offline

« Ответ #8 : 10-05-2009 04:00 » 

У меня есть 2 объекта DateTime
То есть "zz" и "dt"
"dt"- запоминает и показывает то время в которое выскакивает зелёный цвет.
"zz"- запоминает и показывает то время в которое я нажал кнопку.
затем я создаю класс TimeSpan с объектом "ts"...
и пытаюсь вычислить разницу между  "zz" и "dt" и поместить её в "ts"
zz-dt=ts;
а он не высчитывает,показывая в label3 вот такую дату "0:0:0:0" Я зол!
 я уже запарился с этой проблемой если честно!!
Как в конце концов отнять одно время от другого?Не понял
Может кто то подскажет?

БЕРИ КОД В СПЕЦИАЛЬНЫЕ ТЭГИ!!! ОТНОСИСЬ УВАЖИТЕЛЬНО К ЧИТАЮЩИМ ТВОИ СООБЩЕНИЯ! ПОСЛЕДНЕЕ ПРЕДУПРЕЖДЕНИЕ!

Код:
        public void timer1_Tick(object sender, EventArgs e)
        {
            Random rand = new Random();
            Color[] arr = new Color[] { Color.Blue, Color.Brown, Color.DarkGray, Color.Green, Color.MistyRose };
           

            textBox1.BackColor = arr[rand.Next(0, arr.Length)];
            if (textBox1.BackColor == Color.Green)
            {
                DateTime dt = DateTime.Now;
               label1.Text = dt.Hour + ":" + dt.Minute + ":" + dt.Second + ":" + dt.Millisecond;
               
            }

        }
        public void button2_Click(object sender, EventArgs e)
        {
            DateTime zz = DateTime.Now;
            label2.Text = zz.Hour + ":" + zz.Minute + ":" + zz.Second + ":" + zz.Millisecond;
           
            timer1.Stop();
           
           
           
        }

        private void button3_Click(object sender, EventArgs e)
        {
            TimeSpan ts = new TimeSpan();
            ts = zz - dt;
            label3.Text = ts.Hours + ":" + ts.Minutes + ":" + ts.Seconds + ":" + ts.Milliseconds;
           
           
        }


« Последнее редактирование: 10-05-2009 11:27 от Джон » Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #9 : 10-05-2009 11:23 » 

Ильдар, ещё раз. Ты всё КОДИРУЕШЬ правильно. Код у тебя АБСОЛЮТНО ПРАВИЛЬНЫЙ. Ты НЕПРАВИЛЬНО программируешь!!! Ты абсолютно не понимаешь, что ты делаешь. Посмотри внимательно вопросы в прошлой теме. Да фиг с ней, здесь ты повторяешь те же ошибки.

Распиши подробно что такое в ф-ции void button3_Click есть zz, где создаётся, какое значение имеет при обращении к нему? Что такое dt, где создаётся, какое значение имеет при обращении к нему?

Пока ты не ответишь на ЭТИ вопросы, никакого разговора дальше не будет. Иначе ты не научишься ПРОГРАММИРОВАТЬ. Не научишься понимать, что нужно сделать для того, чтобы получилось то, что ты хочешь.

Чтобы тебе легче думалось, если бы я программировал, то моя ф-я выглядела бы так:

Код:
        private void button3_Click(object sender, EventArgs e)
        {
            TimeSpan ts = new TimeSpan();
            ts = zz - dt;
            label3.Text = ts.Hours + ":" + ts.Minutes + ":" + ts.Seconds + ":" + ts.Milliseconds;
        }

Найди разницу.  Ага
« Последнее редактирование: 10-05-2009 11:25 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Ильдар
Участник

kg
Offline Offline

« Ответ #10 : 10-05-2009 11:42 » 

По моему тот код который ты написал, идентичен тому который у меня был записан=)
Там всё одинаково.
А в zz генерируется время нажатия на кнопку button2_click
Ещё вопрос, тут модераторы код просят настоятельно в теги заключать ..

Не подскажешь в какие?
<date></date> -эти?
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #11 : 10-05-2009 12:17 » 

По моему тот код который ты написал, идентичен тому который у меня был записан=)

Абсолютно точно!!! Идентичен. Значит проблема не в нём.

Цитата
А в zz генерируется время нажатия на кнопку button2_click

Вопрос в том ГДЕ это происходит?

Цитата
Ещё вопрос, тут модераторы код просят настоятельно в теги заключать ..
Не подскажешь в какие?

Вот здесь я тебе это уже говорил:

Ильдар, ещё одно замечание по ходу дела. Бери свой код в тег [ code ] ... [ /code ](без пробелов в скобках, это я так написал чтобы было понятно, иначе транслятор сынтрепретирует его), режиме редактирования есть специальная кнопка.

Просто перейди в режим редактирования своего сообщения с исправленным кодом и увидишь.

Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #12 : 10-05-2009 19:11 » 

Цитата
Джон, ты извини что пишу в личку...
Просто так быстрее моё сообщение дойдёт я надеюсь.
У меня уже мозги дымятся, я целый день за компом сижу, даже не поднимаюсь со стула,потому что мне нужно завтра эту работу сдать.
Мне программирование нужно конечно же для себя, не для кого то.
Мне это действительно интересно,но как я сказал я недавно программирую и мне сейчас сложно в самом начале мыслить именно так как ты мне говорил.
Я со временем к этому конечно же приду, но я повторюсь,мне трудно сейчас всё это охватить разом...
А работу завтра сдать надо...
Что нужно сделать в коде чтобы посчиталось время мсежду событиями.
Приведи хоть какой нибудь пример.
Я сейчас тупо создал новый проект, где есть 2 кнопки, без всяких лишних функций.
И хочу посчитать время ,он не считает..
Я просто понять не могу что ему нужно...

Ответ в личке быстрей не дойдёт однозначно.

Ты всё КОДИРУЕШЬ правильно. Просто ты в каждой ф-ции объявляешь ЛОКАЛЬНЫЕ переменные, которые ничего общего с переменными-членами класса, кроме имени, не имеют. Проще говоря, у тебя есть переменная класса zz,  которая нигде не создаётся и нигде не инициаллизируется. ПОэтому у тебя в первой части проблем (с выбором цвета) выскакивала ошибка обращения к нулевому объекту. Помнишь? Ты с этой проблемой не разобрался, а решил её подругому - каждый раз использовал ЛОКАЛЬНЫЕ объекты. Но "умней" не стал. Но как видишь, опять наткнулся на те же грабли.

Возьми за привычку называть переменные класса с префиксом подчёркивания например _zz, а локальные переменные в ф-ях без него. Просто zz. И ты сразу увидишь, то в твоём случае ты пользуешься НЕПРОИНИЦИАЛИЗИРОВАНОЙ перменной, а в ф-ции установки инициаллизируешь ЛОКАЛЬНЫЕ переменные, которые по чистой случайности (твоей неопытности) называются так же как и перменныее члены класса. Вот и вся проблема.

Тебе во ВСЕХ твоих ф-ях надо пользоваться только переменными членами класса, а не локальными переменными.

Сравни:

Код:
private int _zz = 0;

private void Func1()
{
     int zz = 3;
     _zz = 9;
}

private void Func2()
{
     int zz = 2;
     int dd =  zz + _zz;
}

Таким образом исправление твоего кода сводится к удалению нескольких букв. Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Ильдар
Участник

kg
Offline Offline

« Ответ #13 : 11-05-2009 05:30 » 

Джон, привет!!
Я вообще оказывается не правильно объявлял переменные как экземпляры класса Здесь была моя ладья...
Я писал так
Код:
  public Stopwatch _st;

        public TimeSpan timeSpan;

а надо было я сейчас это только что выяснил...сам опять таки методом тыка.
Код:
   Stopwatch _st = new Stopwatch();
         TimeSpan _timeSpen = new TimeSpan();

и всё сразу же заработало как часики Улыбаюсь)

Тебе отдельное спасибо за то что ты подсказывал мне...
Я признаю, программировать я пока не умею толком вообще...
Я просто хочу сказать, чтобы ты понял меня.
Я могу составить грамотно алгоритм, но потом как мне это выразить в коде не могу,то есть мне ещё с синтаксисом надо работать.
ВОт знаю определённо что хочу сделать и что с чем связано, а как это в коде написать не приложу ума.И по этому  к тебе обращаюсь да и на форумах смотрю..
В любом случае мн еэто всё на пользу пошло, я не зря 2 дня у компа как прклятый сидел.
Ну теперь вроди с програмкой разобрался с этой..всё считае и цвета с массива вытягивает случайным образом.
Ну теперь наверное до следующего раза, если опять возникнет вопрос,то конечно же сюда обращусь, к тебе.оК..
Удачи тебе..
Спасибо ещё раз
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #14 : 11-05-2009 11:41 » 

Ильдар, неееет!!! Ты опять всё неправильно понял. Ты ни с чем не разобрался. Ок я объясню тебе подробно на основе твоего же кода.

Итак, тебе необходимо зафиксировать время прошедшее между двумя событиями. Пусть это будут нажатия кнопок.
В общем можно сказать примерно так: тебе надо получить доступ в одной ф-ции к данным, которые были получены в другой ф-ции. Сравни это с задачей по установке случайного цвета.

Итак в одной ф-ции (назовём это стартовым событием) получаем время начала отсчёта - просто текущее время:

Код:
        public void button2_Click(object sender, EventArgs e)
        {
            DateTime zz = DateTime.Now;
        }

В этом случае текущее время считывается в ЛОКАЛЬНУЮ переменную zz, области видимости которой ограничивается фигурными скобками.

После нажатия другой кнопки надо опросить опять же текущее время и вычесть из него время стартового события (мы же помним, что сохранили его в переменной с понятным именем zz).

Код:
        private void button3_Click(object sender, EventArgs e)
        {
            TimeSpan ts = DateTime.Now - zz;
            label3.Text = ts.Hours + ":" + ts.Minutes + ":" + ts.Seconds + ":" + ts.Milliseconds;
        }

Но тут компилятор выдаёт ошибку. Знать не знаю, ведать не ведаю что есть zz? Фокус с созданием точно таких же объектов, как ты "решил" эту проблему с цветами, не прокатывает...  После долгих мучений приходим к выводу, что надо таки сохранять стартовое значение в переменной, которая является членом класса и область её видимости распространяется уже на все методы класса:

Код:
namespace Для_роголёва
{
    public partial class Form1 : Form
    {
        private DateTime zz;
...

В данном случае zz это указатель на объект, пока он нулевой тк никакой объект ещё не был создан.

Вроде бы всё теперь компилируется, то интревал времени показывается всё-ещё неправильно. Почему? Правильно, в ф-ции button2_Click значение присваивается локальной переменной zz, которая не имеет ничего общего (за исключением имени) с перменной zz - члена класса, к которой мы обращаемся в ф-ции  button3_Click.
Это то, о чём я тебя кучу раз спрашивал. ЧТО за объекты ты используешь, КАКОЕ значение они имеют, ГДЕ они создаются. К синтаксису C# или неопытности это не имеет никакого отношения. Это проблема с пониманием того, что ты делаешь.

Таким образом рабочий код выглядит очень просто (с небольшим форматированием с моей стороны):

Код:
namespace Для_роголёва
{
    public partial class Form1 : Form
    {
        private DateTime _zz;

        public void button2_Click(object sender, EventArgs e)
        {
            _zz = DateTime.Now;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            TimeSpan ts = DateTime.Now - _zz;
            label3.Text = ts.Hours + ":" + ts.Minutes + ":" + ts.Seconds + ":" + ts.Milliseconds;
        }
    }
}

Сравни со своим кодом. В чём разница?

А заодно подумай насколько это соответствует с тем пониманием, которое ты получил основываясь на методе товарища Тыка и насколько он применим на этапе обучения.
« Последнее редактирование: 11-05-2009 11:45 от Джон » Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Ильдар
Участник

kg
Offline Offline

« Ответ #15 : 12-05-2009 06:30 » 

Но я же вроди так и писал...
Только за место "_zz" у меня была переменная "zz"
и я её инициализировал как член класса..
Код:
Public DateTime zz;
потом в функции  использовал её же... Здесь была моя ладья...

в принципе понятно, что для того чтобы можно было  использовать переменную внутри всего класса и внутри всех методов и функций то нужно её объявить как глобальную.
Но я потом так и сделал я все переменные инициализировал как члены класса..
Но он всё равно отказывался работать...
Я если честно ...немного в недоумении...
Оказывается всё очень просто и можно за 5 минуь всё это написать было..
но ..подчёркиваю НО...когда знаешь все тонкости..
Причина ясна,Джон...
Спасибо тебе за помощь...!!!
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #16 : 12-05-2009 14:50 » new

Но я же вроди так и писал...

Ага, "вроде так". Да только всё не то. Со стороны это выглядело как эвристический метод последовательных приближений - "а вдруг заработает". Идеальным же является метод от простого к сложному. Шаг за шагом.
И к следующему шагу переходить только после того как текущий предельно понятен.

Цитата
Только за место "_zz" у меня была переменная "zz"

Дело не в имени, хотя лучше давать имена, из которых понятно, что именно хранится в этой переменной.

Цитата
и я её инициализировал как член класса..
Код:
Public DateTime zz;

Это не иницаллизация, а декларация. Ты объявляешь, что в твоём классе будет использована именованная переменная извстного типа. А значение ей ещё не присвоено. Те она не проинициаллизирована. Поэтому в твоём первом коде у тебя и выскакивала ошибка доступа к нулевому объекту. Помнишь?

Object reference not set to an instance of an object.

И в чём ошибка???

Цитата
в принципе понятно, что для того чтобы можно было  использовать переменную внутри всего класса и внутри всех методов и функций то нужно её объявить как глобальную.

Блин, как всё запущено. НЕВЕРНО В КОРНЕ. Никогда и никому это больше не говори. Тебе срочно тебе надо почитать любые книжки по ООП, любой язык, о переменных, их декларации, области видимости и тд. И вобще про объекты, что значит privat, protected, public. Это азбучные истины, но их надо знать как таблицу умножения.

Цитата
Но он всё равно отказывался работать...

Потому что ошибку-то ты не исправил.

Ты так и не ответил на вопрос, где и на кого учишься?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines