1

Тема: DateTime Додавання години і хвилини

Всім привіт виникла проблема в додаванні години і хвилини в DateTime може я щось не так роблю?

DateTime compoff;
if (textBox1.Text != ""&&textBox2.Text != "") {
    double h = Convert.ToDouble(textBox1.Text);
    double m = Convert.ToDouble(textBox2.Text);
    compoff = DateTime.Now.AddHours(h);
    compoff = DateTime.Now.AddMinutes(m);

    pictureBox1.Visible = true;
    button1.Visible = true;
    progressBar1.Visible = true;
    progressBar1.Maximum = Convert.ToInt32(h) * 60 * 60;
    timeroff.Start();
}

Потрібно додати "h" і "m" додає тільки мінути бо вони додаються вже після годин, якщо поміняти місцями

compoff = DateTime.Now.AddHours(h);
compoff = DateTime.Now.AddMinutes(m);

додає години хвилин немає. Як можна це виправити?

Подякували: koala1

2

Re: DateTime Додавання години і хвилини

Ну от власне за що я властивості (property) і не люблю.
DateTime.Now - це властивість. Тобто коли ви звертаєтеся до неї, насправді викликається функція, але виглядає, ніби ви працюєте зі змінною, а це не так.
Вам треба зробити таке:

DateTime compoff = DateTime.Now; // тепер у compoff поточна дата
compoff = compoff.AddHours(h); // збільшили compoff  на години
compoff = compoff.AddMinutes(m); // збільшили compoff  на хвилини

або ж в один вираз

DateTime compoff = DateTime.Now.AddHours(h).AddMinutes(m);

Можете останній вираз розбити на два (проголошення і виставлення значення) за смаком.

Подякували: kinachuk1990, leofun01, Chemist-i3

3

Re: DateTime Додавання години і хвилини

Велике дякую все працює. Чи можливо зберегти дані годин-хвилин без бази даних?

4 Востаннє редагувалося koala (14.09.2022 09:07:30)

Re: DateTime Додавання години і хвилини

Пам'ять комп'ютера поділяють на енергозалежну та енергонезалежну. Як випливає з назви, енергозалежна зберігає інформацію лише коли комп'ютер увімкнений, енергонезалежна - і коли вимкнений. Енергозалежна пам'ять - це оперативна пам'ять, у ній знаходяться запущені програми і, зокрема, змінні. Так, змінні зберігають дані - але, я підозрюю, ви не про це?
Енергонезалежна пам'ять зазвичай дешевша і повільніша за енергозалежну, і на ній зазвичай розташовуються файлові системи. Це - магнітні диски, оптичні диски, твердотілі накопичувачі. Ну так от, бази даних теж зберігаються у файлах, і ви, мабуть, хотіли спитати саме про файли. Далі - в ґуґл.

5

Re: DateTime Додавання години і хвилини

koala написав:

Енергонезалежна пам'ять зазвичай дешевша і повільніша за енергонезалежну

Якесь із «не» тут зайве.

Я так розумію, автор теми знає, як зберегти дату в БД, і не знає, як зберегти її у файл. І насправді це широка тема — формати зберігання дат. Можна зберігати дату просто в вигляді тексту — це найуніверсальніший спосіб, що годиться для будь-яких файлів, як текстових, так і двійкових. Ситуація ускладнюється тим, що є різні національні варіанти форматів дати й часу, час місцевий і глобальний — при перетворенні в текст і з тексту слід дотримуватись одного й того ж. Потім, можливі двійкові формати (для яких текстовий файл не годиться), що базуються на внутрішньому представленні часової інформації (наприклад, це може бути кількість секунд, що відраховуються від початку 1970 року, записана в вигляді 32-розрядного числа). Ще існує таке поняття, як серіалізація — перетворення об'єктів різних типів у формат, придатний для зберігання у файлах, що забезпечується стандартними методами класів — цей спосіб широко використовується, наприклад, у джаві (не знаю, як з цим у С#).
Це все загальна інформація. Які саме перетворення дат доступні в стандартних бібліотеках С#, слід пошукати окремо.

Подякували: koala, leofun012

6

Re: DateTime Додавання години і хвилини

Так, дякую, виправив.