Каждую секунду времени ошибка

Вот мой код:

public void run() {
        try {
            while (!isInterrupted()) {
                Thread.sleep(1000);
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {

                    }
                });
            }
        } catch (InterruptedException e) {
        }
    }
};
thread.start();

Thread называется Thread, и я хочу отображать время в TextView, называемом TextView. В Thread есть некоторая ошибка, потому что, хотя время отображается в TextView, оно не обновляется каждую секунду. Спасибо

2 ответа

Используйте Runnable И < a href = «https://developer.android.com/reference/android/os/Handler.html» rel = «nofollow noreferrer»> Handler

Runnable runnable = new Runnable() {
    @Override
    public void run() {

        Date time = Calendar.getInstance().getTime();
        textView.setText(DateFormat.format("hh:mm", time));

        handler.postDelayed(this, 1000);
    }
};

Handler handler = new Handler();
handler.post(runnable);


2

Ali Faris
10 Авг 2017 в 14:36

Как уже говорилось, вы должны использовать Handler с Runnable, вот пример вашего кода:

final Handler handler = new Handler();
final Runnable task = new Runnable() {
    @Override
    public void run() {
        //Your code
        handler.postDelayed(this, 1000);
    }
};
handler.postDelayed(task, 1000);

Дополнительную информацию об обработчиках см. в документе.


2

Matias Olocco
10 Авг 2017 в 23:24

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using Microsoft.Win32; using System.Security.Principal;   namespace Updater {     public partial class Form1 : Form     {                 public Form1()           {             InitializeComponent();             t.Tick += timer1_Tick;             t2.Tick += timer2_Tick;             this.Text = "Автоматический корректировщик "; // + FormUpdater.my_version;             label3.Text = FormUpdater.my_version;         }             private void выходToolStripMenuItem_Click(object sender, EventArgs e)         {            // Close();         }           private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)         {             AboutBox1 a = new AboutBox1();             a.Show();           }           private void button1_Click(object sender, EventArgs e) // 1 кнопка активация в ВК         {                         if (timer1.Enabled)             {                 System.Diagnostics.Process p = new System.Diagnostics.Process();                 p.StartInfo.FileName = "open.exe";                 p.Start();                 button1.Text = "Открыть доступ в ВК r продолжит таймер";                 timer1.Enabled = false;                           }             else             {                 System.Diagnostics.Process p = new System.Diagnostics.Process();                 p.StartInfo.FileName = "close.exe";                 p.Start();                 button1.Text = "Приостановить таймер";                 timer1.Enabled = true;                             }             //MessageBox.Show("Критическая ошибка приложения n n Данная функция не работает в этой версии программы n Версия программы " + FormUpdater.my_version, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);                   }           private void настройкиToolStripMenuItem_Click(object sender, EventArgs e)         {             MessageBox.Show("Окошко №1 n n n Тестовая запись r Окно настроек ещё не готово", "Настройки...", MessageBoxButtons.OK, MessageBoxIcon.Question);         }           int i;         int ti;          private void button3_Click(object sender, EventArgs e) // 3 кнопка "Тестовая"         {             System.Diagnostics.Process z = new System.Diagnostics.Process();             z.StartInfo.FileName = @"open.exe";             z.Start();             RegistryKey readKey = Registry.LocalMachine.OpenSubKey("SYSTEMCurrentControlSetServicesTcpipParameters");             string put = (string)readKey.GetValue("DataBasePath");  //Получаем путь до etc             string put1 = put + "/hosts"; //Получаем путь до hosts           // if(File.Exists("c:/windows/system32/drivers/etc/hosts")) это альтернативный способ проверки файла хостс                if (File.Exists(put + "/hosts"))                 {                    /* string path = @"localhostupdatehosts";                     string path2 = @"c:";                     string path3 = put;                     File.Copy(path, path2, true);                     File.Copy(path, path3, true);                                           не работает данная хуйня                     обходим путём командной строки                     */                    // string command = "xcopy ";                    // System.Diagnostics.Process.Start("cmd.exe", "/C " + command);                    //System.Diagnostics.Process.Start("cmd.exe", "/C " + "xcopy adminupdateclosehosts u0022%windir%system32driversetcu0022 /H /E /G /Q /R /Y");                                     button3.Enabled = false; // делаем кнопку неактивной                     i = 3600;   // время на открытие контакта                     label6.Text = i.ToString();  // отображение времени в поле "неизвестно"                     timer1.Interval = 1000;                     timer1.Enabled = true;  // делаем таймер активным                     timer1.Start();   // запускаем таймер                     button3.Text = "Доступ в ВК активен на 1 час";                 }                           else            {                MessageBox.Show("Критическая ошибка. r Срочно позовите системного администратора! n У Вас ВИРУС!!!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);                 }               }          private void timer1_Tick(object sender, EventArgs e)         {             i -= 1;             string mm;             string ss;             string hh = (i / 3600).ToString();             if ((i % 3600) / 60 > 9)             {                 mm = ((i % 3600) / 60).ToString();             }             else             {                 mm = "0" + ((i % 3600) / 60).ToString();             }             if ((i % 3600) % 60 > 9)             {                 ss = ((i % 3600) % 60).ToString();             }             else             {                 ss = "0" + ((i % 3600) % 60).ToString();             }             label6.Text = hh + ":" + mm + ":" + ss;             if  (i < 0)                timer1.Stop();             if (i < 0)                 MessageBox.Show("Ваше время доступа истекло n Пожалуйста сверните программу n n n Новый доступ будет доступен через 12 часов", "Завершение работы", MessageBoxButtons.OK, MessageBoxIcon.Stop);             System.Diagnostics.Process p = new System.Diagnostics.Process();             p.StartInfo.FileName = @"close.exe";             p.Start();                     }         private void trackBar1_Scroll(object sender, EventArgs e)         {             Form1.ActiveForm.Opacity = trackBar1.Value / (double)trackBar1.Maximum;         }          private void Form1_Load(object sender, EventArgs e)          {                            t2.Start();              ti = 28800;   // время До конца рабочего дня              label10.Text = i.ToString();  // отображение времени в поле "неизвестно"              timer2.Interval = 1000;              timer2.Enabled = true;  // делаем таймер активным              timer2.Start();   // запускаем таймер                  this.ControlBox = false;  // При загрузке окна, Кнопка Закрыть исчезает                           System.Diagnostics.Process p = new System.Diagnostics.Process(); // Запускается командная строка с параметром Shutdown на 12 часов. Компьютер который не выключен перезагрузится.              p.StartInfo.FileName = "cmd.exe";              p.StartInfo.Arguments = "/c shutdown -r -t 43200";              p.Start();          }                      private void button2_Click(object sender, EventArgs e) // Вторая кнопка спрятать программу          {              this.WindowState = FormWindowState.Minimized;              this.ShowInTaskbar = false;                        }            private void notifyIcon1_MouseDoubleClick_1(object sender, MouseEventArgs e)          {                         this.WindowState = FormWindowState.Normal;             this.ShowInTaskbar = true;          }            private void timer2_Tick(object sender, EventArgs e)          {              ti -= 1;              string mm;              string ss;              string hh = (ti / 3600).ToString();              if ((ti % 3600) / 60 > 9)              {                  mm = ((ti % 3600) / 60).ToString();              }              else              {                  mm = "0" + ((ti % 3600) / 60).ToString();              }              if ((ti % 3600) % 60 > 9)              {                  ss = ((ti % 3600) % 60).ToString();              }              else              {                  ss = "0" + ((ti % 3600) % 60).ToString();              }              label10.Text = hh + ":" + mm + ":" + ss;              if (ti < 0)                  timer2.Stop();              if (ti < 0)                  MessageBox.Show("Рабочий день закончен n Сходите отдохните, Вы весь день трудились в поте лица n Желаем Вам всего наилучшего.  n Увидимся завтра. Покааа))", "Конец рабочего дня", MessageBoxButtons.OK, MessageBoxIcon.Stop);                        }          private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)          {              if (e.Button == System.Windows.Forms.MouseButtons.Right)              {                  contextMenuStrip1.Show(Cursor.Position);              }          }              private void toolStripMenuItem2_MouseClick(object sender, MouseEventArgs e)          {                          MessageBox.Show("Working it's n n n n n n Программа работает корректно, доработки ведутся r Версия программульки " + FormUpdater.my_version, "работаетсуканах..");                          }            private void Form1_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)          {              this.WindowState = FormWindowState.Minimized;              this.ShowInTaskbar = false;          }            private void Form1_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)          {              this.WindowState = FormWindowState.Minimized;              this.ShowInTaskbar = false;          }     }     }

Прошу помощи господа.
В моём говнокоде не могу найти ошибку.
Сделал запуск программы по нажатию на button

 System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName = "open.exe"; p.Start();

Но вот беда. Почему то мне каждую секунду открывает программу.
Полный код

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using Microsoft.Win32; using System.Security.Principal; namespace Updater { public partial class Form1 : Form { public Form1() { InitializeComponent(); t.Tick += timer1_Tick; t2.Tick += timer2_Tick; this.Text = "Автоматический корректировщик "; // + FormUpdater.my_version; label3.Text = FormUpdater.my_version; } private void выходToolStripMenuItem_Click(object sender, EventArgs e) { // Close(); } private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e) { AboutBox1 a = new AboutBox1(); a.Show(); } private void button1_Click(object sender, EventArgs e) // 1 кнопка активация в ВК { if (timer1.Enabled) { System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName = "open.exe"; p.Start(); button1.Text = "Открыть доступ в ВК r продолжит таймер"; timer1.Enabled = false; } else { System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName = "close.exe"; p.Start(); button1.Text = "Приостановить таймер"; timer1.Enabled = true; } //MessageBox.Show("Критическая ошибка приложения n n Данная функция не работает в этой версии программы n Версия программы " + FormUpdater.my_version, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } private void настройкиToolStripMenuItem_Click(object sender, EventArgs e) { MessageBox.Show("Окошко №1 n n n Тестовая запись r Окно настроек ещё не готово", "Настройки...", MessageBoxButtons.OK, MessageBoxIcon.Question); } int i; int ti; private void button3_Click(object sender, EventArgs e) // 3 кнопка "Тестовая" { System.Diagnostics.Process z = new System.Diagnostics.Process(); z.StartInfo.FileName = @"open.exe"; z.Start(); RegistryKey readKey = Registry.LocalMachine.OpenSubKey("SYSTEMCurrentControlSetServicesTcpipParameters"); string put = (string)readKey.GetValue("DataBasePath"); //Получаем путь до etc string put1 = put + "/hosts"; //Получаем путь до hosts // if(File.Exists("c:/windows/system32/drivers/etc/hosts")) это альтернативный способ проверки файла хостс if (File.Exists(put + "/hosts")) { /* string path = @"localhostupdatehosts"; string path2 = @"c:"; string path3 = put; File.Copy(path, path2, true); File.Copy(path, path3, true); не работает данная хуйня обходим путём командной строки */ // string command = "xcopy "; // System.Diagnostics.Process.Start("cmd.exe", "/C " + command); //System.Diagnostics.Process.Start("cmd.exe", "/C " + "xcopy adminupdateclosehosts u0022%windir%system32driversetcu0022 /H /E /G /Q /R /Y"); button3.Enabled = false; // делаем кнопку неактивной i = 3600; // время на открытие контакта label6.Text = i.ToString(); // отображение времени в поле "неизвестно" timer1.Interval = 1000; timer1.Enabled = true; // делаем таймер активным timer1.Start(); // запускаем таймер button3.Text = "Доступ в ВК активен на 1 час"; } else { MessageBox.Show("Критическая ошибка. r Срочно позовите системного администратора! n У Вас ВИРУС!!!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void timer1_Tick(object sender, EventArgs e) { i -= 1; string mm; string ss; string hh = (i / 3600).ToString(); if ((i % 3600) / 60 > 9) { mm = ((i % 3600) / 60).ToString(); } else { mm = "0" + ((i % 3600) / 60).ToString(); } if ((i % 3600) % 60 > 9) { ss = ((i % 3600) % 60).ToString(); } else { ss = "0" + ((i % 3600) % 60).ToString(); } label6.Text = hh + ":" + mm + ":" + ss; if (i < 0) timer1.Stop(); if (i < 0) MessageBox.Show("Ваше время доступа истекло n Пожалуйста сверните программу n n n Новый доступ будет доступен через 12 часов", "Завершение работы", MessageBoxButtons.OK, MessageBoxIcon.Stop); System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName = @"close.exe"; p.Start(); } private void trackBar1_Scroll(object sender, EventArgs e) { Form1.ActiveForm.Opacity = trackBar1.Value / (double)trackBar1.Maximum; } private void Form1_Load(object sender, EventArgs e) { t2.Start(); ti = 28800; // время До конца рабочего дня label10.Text = i.ToString(); // отображение времени в поле "неизвестно" timer2.Interval = 1000; timer2.Enabled = true; // делаем таймер активным timer2.Start(); // запускаем таймер this.ControlBox = false; // При загрузке окна, Кнопка Закрыть исчезает System.Diagnostics.Process p = new System.Diagnostics.Process(); // Запускается командная строка с параметром Shutdown на 12 часов. Компьютер который не выключен перезагрузится. p.StartInfo.FileName = "cmd.exe"; p.StartInfo.Arguments = "/c shutdown -r -t 43200"; p.Start(); } private void button2_Click(object sender, EventArgs e) // Вторая кнопка спрятать программу { this.WindowState = FormWindowState.Minimized; this.ShowInTaskbar = false; } private void notifyIcon1_MouseDoubleClick_1(object sender, MouseEventArgs e) { this.WindowState = FormWindowState.Normal; this.ShowInTaskbar = true; } private void timer2_Tick(object sender, EventArgs e) { ti -= 1; string mm; string ss; string hh = (ti / 3600).ToString(); if ((ti % 3600) / 60 > 9) { mm = ((ti % 3600) / 60).ToString(); } else { mm = "0" + ((ti % 3600) / 60).ToString(); } if ((ti % 3600) % 60 > 9) { ss = ((ti % 3600) % 60).ToString(); } else { ss = "0" + ((ti % 3600) % 60).ToString(); } label10.Text = hh + ":" + mm + ":" + ss; if (ti < 0) timer2.Stop(); if (ti < 0) MessageBox.Show("Рабочий день закончен n Сходите отдохните, Вы весь день трудились в поте лица n Желаем Вам всего наилучшего. n Увидимся завтра. Покааа))", "Конец рабочего дня", MessageBoxButtons.OK, MessageBoxIcon.Stop); } private void notifyIcon1_MouseClick(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Right) { contextMenuStrip1.Show(Cursor.Position); } } private void toolStripMenuItem2_MouseClick(object sender, MouseEventArgs e) { MessageBox.Show("Working it's n n n n n n Программа работает корректно, доработки ведутся r Версия программульки " + FormUpdater.my_version, "работаетсуканах.."); } private void Form1_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e) { this.WindowState = FormWindowState.Minimized; this.ShowInTaskbar = false; } private void Form1_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e) { this.WindowState = FormWindowState.Minimized; this.ShowInTaskbar = false; } } }

What I want is to be able to run a function every second, irrelevant of how long the function takes (it should always be under a second). I’ve considered a number of options but not sure which is best.

If I just use the delay function it isn’t going to take into account the time the function takes to run.

If I time the function and then subtract that from a second and make up the rest in the delay it’s not going to take into account the time calculations.

I tried using threading.timer (I’m not sure about the ins and outs of how this works) but it did seem to be slower than the 1s.

Here’s the code I tried for testing threading.timer:

def update(i):
sys.stdout.write(str(i)+'r')
sys.stdout.flush()
print i
i += 1
threading.Timer(1, update, [i]).start()

Is there a way to do this irrelevant of the length of the time the function takes?

asked May 30, 2012 at 9:07

DNN's user avatar

3

This will do it, and its accuracy won’t drift with time.

import time
start_time = time.time()
interval = 1
for i in range(20):
time.sleep(start_time + i*interval - time.time())
f()

3

The approach using a threading.Timer (see code below) should in fact not be used, as a new thread is launched at every interval and this loop can never be stopped cleanly.

# as seen here: https://stackoverflow.com/a/3393759/1025391 def update(i): threading.Timer(1, update, [i+1]).start() # business logic here 

If you want a background loop it is better to launch a new thread that runs a loop as described in the other answer. Which is able to receive a stop signal, s.t. you can join() the thread eventually.

This related answer seems to be a great starting point to implement this.

answered May 30, 2012 at 9:15

moooeeeep's user avatar

moooeeeepmoooeeeep

30.8k21 gold badges95 silver badges181 bronze badges

3

if f() always takes less than a second then to run it on a one second boundary (without a drift):

import time
while True:
time.sleep(1 - time.monotonic() % 1)      
f()

The idea is from @Dave Rove’s answer to a similar question.

To understand how it works, consider an example:

  1. time.monotonic() returns 13.7 and time.sleep(0.3) is called
  2. f() is called around (±some error) 14 seconds (since time.monotonic() epoch)
  3. f() is run and it takes 0.1 (< 1) seconds
  4. time.monotonic() returns around 14.1 seconds and time.sleep(0.9) is called
  5. Step 2. is repeated around 15 seconds (since time.monotonic() epoch)
  6. f() is run and it takes 0.3 (< 1) seconds (note: the value is different from Step 2.)
  7. time.monotonic() returns around 15.3 and time.sleep(0.7) is called
  8. f() is called around 16 seconds and the loop is repeated.

At each step f() is called on a one second boundary (according to time.monotonic() timer). The errors do not accumulate. There is no drift.

See also: How to run a function periodically in python (using tkinter).

Jason Webster's user avatar

answered Feb 28, 2016 at 19:20

jfs's user avatar

jfsjfs

390k188 gold badges962 silver badges1647 bronze badges

How about this: After each run, sleep for (1.0 - launch interval) seconds. You can change the terminate condition by changing while True:. Although if the your function takes more than 1 second to run, this will go wrong.

from time import time, sleep
while True:
startTime = time()
yourFunction()
endTime = time()-startTime
sleep(1.0-endTime)

answered May 30, 2012 at 9:29

lllluuukke's user avatar

lllluuukkelllluuukke

1,2942 gold badges12 silver badges17 bronze badges

Threading may be a good choice. The basic concept is as follows.

import threading def looper(): # i as interval in seconds threading.Timer(i, looper).start() # put your action here foo() #to start looper() 

answered Jun 28, 2014 at 15:14

Znatz's user avatar

ZnatzZnatz

1,5402 gold badges18 silver badges30 bronze badges

I would like to recommend the following code. You can replace the True with any condition if you want.

while True: time.sleep(1) #sleep for 1 second func() #function you want to trigger 

Tell me if it works.

answered Mar 31, 2020 at 6:53

Grasshopper's user avatar

GrasshopperGrasshopper

3432 silver badges13 bronze badges

1) Отредактируйте предложение: исправьте лексическую ошибку, исключив лишнее слово. Выпишите это слово.
* Каждую секунду времени солдаты с огромным напряжением ждали атаки.

2) Установите соответствие между грамматическими ошибками и предложениями, в которых они допущены: к каждой позиции первого столбца подберите соответствующую позицию из второго столбца
ГРАММАТИЧЕСКИЕ ОШИБКИ
А.нарушение связи между подлежащим и сказуемым
Б.нарушение в построении предложения с несогласованным приложением
В.ошибка в построении предложения с однородными членами
Г.неправильное построение предложения с косвенной речью
Д.нарушение в построении предложения с причастным оборотом
ПРЕДЛОЖЕНИЯ
1. Все, кто посмотрел новый фильм известного режиссёра, высказывали весьма
противоречивые суждения.
2. Те, кто ни разу не любовался величественной панорамой столицы с вершины
колокольни Ивана Великого, не имеет представления о Москве.
3. Марина Цветаева безмерно уважала и восхищалась творчеством Анны Ахматовой.
4. В стихотворении «Поэт» М. Ю. Лермонтова аллегорически изображается кризис современной поэзии, объясняемый социальной апатией.
5. Язык — не только лучший показатель общей культуры, но и лучший воспитатель человека.
6. Русский хирург и анатом Н. И. Пирогов завещал нам, что «учитесь, читайте, размышляйте и извлекайте из всего самое полезное».
7. Самый большой сборник «Пословицы русского народа» В.И.Даля описывает более 30 000 пословиц и поговорок, содержащий 180 разрядов по разным темам.
8. Приезжий (видимо, турист) спросил у прохожего, есть ли поблизости от вокзала почтовое отделение.
9. Путь духовных исканий героев подробно описан в романе Л.Толстого «Войне и мире».

Помогите пожалуйста! Очень надо!!!)

Условие

Отредактируйте предложение: исправьте лексическую ошибку, исключив лишнее слово. Выпишите это слово.

На протяжении всей нашей жизни в наш мозг каждую секунду времени поступает множество сенсорных сигналов.

Показать ответ

Источник: «Русский язык. Типовые тестовые задания ЕГЭ 2019». Под ред. И. П. Васильевых., Ю. Н. Гостева.

Рассказать друзьям

Лучшие репетиторы для сдачи ЕГЭ

Комментарии

Задавайте ваши вопросы и помогайте друг другу в решении задач

Комментарии содержащие в себе рекламу, нецензурную лексику и не относящиеся к тематике сайта будут удалены

Лучшие репетиторы для сдачи ЕГЭ

Сложно со сдачей ЕГЭ?

Звоните, и подберем для вас репетитора: 78007750928

© 2016—2023
Все права защищены.

Служба поддержки портала

Цитата
Сообщение от IamRain
Посмотреть сообщение

попробуйте поиграться с интервалом, задать в 900-950 мс

об этом я тоже думал, но тогда выйдет, что в определенных обстоятельствах метод два раза сработает за секунду, а это тоже плохо. То есть в БД лягут две строки с одинаковыми DateTime

Добавлено через 4 минуты
Usaga, а не подскажете, как изменить алгоритм, чтобы функциональность осталась, как в 6 моем посте? У меня уже голова кипит, а максимум, что я придумал, это проверять не каждую секунду, а каждые 500 мс и если сработало, то взводить флаг, чтобы второй раз не щелкало, а затем его сбрасывать.

Добавлено через 2 минуты
Вот тот же планировщик заданий ведь, если ему выставить каждые два часа срабатывать один раз, он ведь ни одного запуска не пропустит и по два раза тоже не запускает, значит есть решение ведь.


0

1

Добрый день. была установлена федора 26 (вместе с виндой) все работало примерно сутки. каждый раз при загрузке системы выдавалась ошибка такого формата (The kernel log indicates that hardware errors were detected.
This is most likely not a software problem. и что то вроде — BOOT_IMAGE=/vmlinuz-4.16.3-301.fc28.x86_64). было написано, что все исправлено и все ок. и так каждый раз при загрузке. Через сутки система начала периодически виснуть намертво. Установил 28ю. система зависла намертво сразу после установки а после перезагрузки эта же самая ошибка начала вылетать каждую секунду. На убунту и на минте таких проблем не было. в чем может быть проблема ? винда тоже работает стабильно.
Система ноут Acer i3 4 гига опаративы две видео карты (встроеная интел и нвидиа)

Я действительно новичок в этом. Я хочу, чтобы этот js обновлялся каждую секунду, чтобы он работал как часы или отображал время

Может быть, с помощью setInterval? Я не знаю как это сделать

Вот мой код

Игнорировать язык бахаса в моем коде

date = new Date();
menit = date.getMinutes();
jam = date.getHours();
hari = date.getDay();
tanggal = date.getDate();
bulan = date.getMonth();
tahun = date.getFullYear();
document.write(tanggal+" "+arrbulan[bulan]+" "+tahun+"<br>"+jam+" : "+menit);

3 ответа

Лучший ответ

Это должно работать:

<p id="date"></p>
<script>
setInterval(function(){
date = new Date();
seconds = date.getSeconds();
menit = date.getMinutes();
jam = date.getHours();
hari = date.getDay();
tanggal = date.getDate();
bulan = date.getMonth();
tahun = date.getFullYear();
document.getElementById('date').innerHTML = tanggal+" "+((bulan+1)%12)+" "+tahun+"<br>"+jam+" : "+menit+" : "+seconds;
},1000);
</script>


0

Anjana
12 Май 2020 в 14:53

Ну, вы можете нацелить div в своем HTML-коде с помощью:

const myDiv = document.getElementById('myId');

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

setInterval(() => {
myDiv.innerText = myFunction();
}, 1000);

Где myFunction :

const myFunction = () => {
date = new Date();
menit = date.getMinutes();
jam = date.getHours();
hari = date.getDay();
tanggal = date.getDate();
bulan = date.getMonth();
tahun = date.getFullYear();
return tanggal + ' ' + arrbulan[bulan] + ' ' + tahun + '<br />' + jam + ' : ' + menit;
}


0

Damian Kociszewski
12 Май 2020 в 14:31

Да. setInterval было бы кстати.

Что вам нужно, это обернуть ваш код, который генерирует дату в:

    setInterval(function() {
// Load the date here every second
document.getElementById('your-date-element').innerHTML = YOUR_DATE_HERE
}, 1000)

Замените your-date-element на идентификатор элемента, в который вы хотите поместить свою дату, и YOUR_DATE_HERE на дату в нужном формате.

Этот код будет выполняться каждые 1000 мс (1 секунда) и обновлять дату соответственно.


0

Yakko Majuri
12 Май 2020 в 14:30

На чтение 8 мин Просмотров 2.7к. Опубликовано 07.12.2021

Если системные дата и время вашего компьютера не совпадают с мировым временем, то при загрузке веб-страниц в браузере вы столкнетесь с ошибкой часов. Но эту досадную ошибку можно легко избежать.

Содержание

  1. Почему в браузерах появляется ошибка часов
  2. Замена батареи на материнской плате
  3. Синхронизация времени по Интернету
  4. Настройка часового пояса
  5. Удаление вирусов и пиратских программ

Почему в браузерах появляется ошибка часов

Загружая страницу в браузере, у вас может появиться окно с уведомлением «Часы спешат», «Ваши часы спешат», «Часы отстают» или что-то в этом духе. Причем пользователей пугает не заголовок сообщения, а его тело: «Не удалось установить защищенное соединение с доменом из-за неверных системных настроек часов и календаря». У вас может даже закрасться подозрение, что это какая-то вирусная атака, ведь причем здесь часы, если идет загрузка страницы сайта?Часы спешат

Определенно, вирусы могут создать такую проблему, но в подавляющем большинстве случаев причины всего лишь две:

  • После аварийного завершения работы сбились системные настройки.
  • Встроенная батарейка материнской платы разрядилась, из-за чего часы при отключении ПК также отключаются и нуждаются в повторной настройке.

Наверняка вы после обнаружения проблемы с отображением сайта в браузере в первую очередь попытались вручную отредактировать правильные значения для календаря. И это правильно. Но если ошибка не исправляется или через какое-то время вновь появляется, то вам нужно искать более глубокие причины сбоя.

Замена батареи на материнской плате

Точность системных часов зависит от качества микросхем и от аккумулятора материнской платы. Если часы сбиваются на несколько секунд или минут в течение длительного времени, то дело именно в микросхеме. А если ваши часы показывают дату и время совершенно не подходящие, то возможно у вас села батарейка материнской платы. Как правило, в этом случае при каждом запуске компьютера часы начинают отсчет от даты и времени создания вашей BIOS.

Вы можете долгое время не замечать проблем со слабым уровнем заряда батареи, если пользуетесь компьютером очень часто, а в нерабочее время оставляете его в спящем режиме, а не выключаете. Но при выключении, а особенно при длительном отключении, например, на выходные или на период отпуска, проблемы со сбросом времени вновь появятся.Замена батарейки на материнской плате

Если ваш компьютер еще находится на гарантии, то лучше заменить батарею в сервисном центре. Если же гарантия уже давно истекла, а батареи обычно разряжаются на 3-6 год существования компьютера, то справиться с заменой батареи можно и самостоятельно.

Друзья, напоминаем вам, что прежде чем снимать крышку с ноутбука или системного блока, полностью обесточьте ваш компьютер.

Синхронизация времени по Интернету

Если же время сбивается не значительно, то, чтобы избежать ошибок часов в Яндекс Браузере, установите в системных настройках вашего компьютера автоматическую настройку времени.

Для Windows 11 и 10:

Кликните правой кнопкой мыши на блок календаря в нижнем правом углу и выберите «Настроить дату и время». В правой части окна найдите параметр «Установить время автоматически» и активируйте ползунок. Изменения сохранятся автоматически.Настроить дату и время

Чуть ниже вы найдете блок «Дополнительные параметры», а в нем кнопку «Синхронизировать». Щелкните на нее, если после активации параметра часы не обновились автоматически.Синхронизировать дату и время

Для Windows 8 и 7:

Щелкните левой кнопкой мыши по часам в системном трее, а затем под страницей календаря найдите опцию «Параметры даты и времени».Установка даты и времени на Windows 7

В новом окошке найдите в сопутствующих настройках времени «Дополнительные параметры…», затем перейдите к «Установка даты и времени», а в очередном открывшемся диалоговом окне на вкладке «Время по Интернету» устанавливаем галочку напротив «Синхронизировать с сервером времени по Интернету» и проверяем, чтобы система ссылалась на правильный адрес: time.windows.com. Не забываем сохранить изменения!Синхронизировать время Windows 7 по интернету

Настройка часового пояса

Иногда проблема может оказаться в сбое часового пояса. Так ваша дата и даже минуты будут совпадать с реальным временем, а вот часы могут быть показывать не правильное значение.

Управление часовым поясом идет в параметрах компьютера бок об бок с настройками автоматической синхронизации по Интернету. Поэтому воспользуйтесь нашей инструкцией выше, чтобы отредактировать часовой пояс в своем компьютере.Настройка часового пояса

Проще всего редактировать часовой пояс в Windows 11 и 10: тут можно настроить автоматическое определение часового пояса. Это очень удобно, если вы много путешествуете и не хотите тратить время на ручную настройку часов.

Удаление вирусов и пиратских программ

Если предыдущие средства вам не помогли, то значит на компьютере установлен специальный софт, который меняет системное время.

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

Вячеслав Вяткин

Вячеслав Вяткин

Администратор данного веб ресурса. IT специалист с 10 летним стажем работы. Увлекаюсь созданием и продвижением сайтов!

Задать вопрос

Как видите, ошибка часов в Яндекс Браузере — это частая, но легко решаемая проблема, которая связанна не с самим браузером, а с системными настройками. Хоть это и звучит серьезно, но скорректировать параметры часов и календаря могут даже неопытные пользователи.

Вот мой код:

public void run() {
        try {
            while (!isInterrupted()) {
                Thread.sleep(1000);
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {

                    }
                });
            }
        } catch (InterruptedException e) {
        }
    }
};
thread.start();

Thread называется Thread, и я хочу отображать время в TextView, называемом TextView. В Thread есть некоторая ошибка, потому что, хотя время отображается в TextView, оно не обновляется каждую секунду. Спасибо

2 ответа

Используйте Runnable И < a href = «https://developer.android.com/reference/android/os/Handler.html» rel = «nofollow noreferrer»> Handler

Runnable runnable = new Runnable() {
    @Override
    public void run() {

        Date time = Calendar.getInstance().getTime();
        textView.setText(DateFormat.format("hh:mm", time));

        handler.postDelayed(this, 1000);
    }
};

Handler handler = new Handler();
handler.post(runnable);


2

Ali Faris
10 Авг 2017 в 14:36

Как уже говорилось, вы должны использовать Handler с Runnable, вот пример вашего кода:

final Handler handler = new Handler();
final Runnable task = new Runnable() {
    @Override
    public void run() {
        //Your code
        handler.postDelayed(this, 1000);
    }
};
handler.postDelayed(task, 1000);

Дополнительную информацию об обработчиках см. в документе.


2

Matias Olocco
10 Авг 2017 в 23:24

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Microsoft.Win32;
using System.Security.Principal;
 
namespace Updater
{
    public partial class Form1 : Form
    {
        
        public Form1()
 
        {
            InitializeComponent();
            t.Tick += timer1_Tick;
            t2.Tick += timer2_Tick;
            this.Text = "Автоматический корректировщик "; // + FormUpdater.my_version;
            label3.Text = FormUpdater.my_version;
        }
 
 
        private void выходToolStripMenuItem_Click(object sender, EventArgs e)
        {
           // Close();
        }
 
        private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AboutBox1 a = new AboutBox1();
            a.Show();
 
        }
 
        private void button1_Click(object sender, EventArgs e) // 1 кнопка активация в ВК
        {
            
            if (timer1.Enabled)
            {
                System.Diagnostics.Process p = new System.Diagnostics.Process();
                p.StartInfo.FileName = "open.exe";
                p.Start();
                button1.Text = "Открыть доступ в ВК r продолжит таймер";
                timer1.Enabled = false;
              
            }
            else
            {
                System.Diagnostics.Process p = new System.Diagnostics.Process();
                p.StartInfo.FileName = "close.exe";
                p.Start();
                button1.Text = "Приостановить таймер";
                timer1.Enabled = true;
                
            }
            //MessageBox.Show("Критическая ошибка приложения n n Данная функция не работает в этой версии программы n Версия программы " + FormUpdater.my_version, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
          
        }
 
        private void настройкиToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Окошко №1 n n n Тестовая запись r Окно настроек ещё не готово", "Настройки...", MessageBoxButtons.OK, MessageBoxIcon.Question);
        }
 
        int i;
        int ti;
 
       private void button3_Click(object sender, EventArgs e) // 3 кнопка "Тестовая"
        {
            System.Diagnostics.Process z = new System.Diagnostics.Process();
            z.StartInfo.FileName = @"open.exe";
            z.Start();
            RegistryKey readKey = Registry.LocalMachine.OpenSubKey("SYSTEM\CurrentControlSet\Services\Tcpip\Parameters");
            string put = (string)readKey.GetValue("DataBasePath");  //Получаем путь до etc
            string put1 = put + "/hosts"; //Получаем путь до hosts
          // if(File.Exists("c:/windows/system32/drivers/etc/hosts")) это альтернативный способ проверки файла хостс
               if (File.Exists(put + "/hosts")) 
                {
                   /* string path = @"\localhostupdatehosts";
                    string path2 = @"c:";
                    string path3 = put;
                    File.Copy(path, path2, true);
                    File.Copy(path, path3, true); 
                    
                    не работает данная хуйня
                    обходим путём командной строки
                    */
                   // string command = "xcopy ";
                   // System.Diagnostics.Process.Start("cmd.exe", "/C " + command);
                   //System.Diagnostics.Process.Start("cmd.exe", "/C " + "xcopy admin\update\close\hosts u0022%windir%\system32\drivers\etc\u0022 /H /E /G /Q /R /Y");
               
                    button3.Enabled = false; // делаем кнопку неактивной
                    i = 3600;   // время на открытие контакта
                    label6.Text = i.ToString();  // отображение времени в поле "неизвестно"
                    timer1.Interval = 1000; 
                    timer1.Enabled = true;  // делаем таймер активным
                    timer1.Start();   // запускаем таймер
                    button3.Text = "Доступ в ВК активен на 1 час";
                }   
                        else
           {
               MessageBox.Show("Критическая ошибка. r Срочно позовите системного администратора! n У Вас ВИРУС!!!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
              }
         private void timer1_Tick(object sender, EventArgs e)
        {
            i -= 1;
            string mm;
            string ss;
            string hh = (i / 3600).ToString();
            if ((i % 3600) / 60 > 9)
            {
                mm = ((i % 3600) / 60).ToString();
            }
            else
            {
                mm = "0" + ((i % 3600) / 60).ToString();
            }
            if ((i % 3600) % 60 > 9)
            {
                ss = ((i % 3600) % 60).ToString();
            }
            else
            {
                ss = "0" + ((i % 3600) % 60).ToString();
            }
            label6.Text = hh + ":" + mm + ":" + ss;
            if  (i < 0)
               timer1.Stop();
            if (i < 0)
                MessageBox.Show("Ваше время доступа истекло n Пожалуйста сверните программу n n n Новый доступ будет доступен через 12 часов", "Завершение работы", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            System.Diagnostics.Process p = new System.Diagnostics.Process();
            p.StartInfo.FileName = @"close.exe";
            p.Start();
           
        }
        private void trackBar1_Scroll(object sender, EventArgs e)
        {
            Form1.ActiveForm.Opacity = trackBar1.Value / (double)trackBar1.Maximum;
        }
         private void Form1_Load(object sender, EventArgs e)
         {
             
             t2.Start();
             ti = 28800;   // время До конца рабочего дня
             label10.Text = i.ToString();  // отображение времени в поле "неизвестно"
             timer2.Interval = 1000;
             timer2.Enabled = true;  // делаем таймер активным
             timer2.Start();   // запускаем таймер
 
 
             this.ControlBox = false;  // При загрузке окна, Кнопка Закрыть исчезает
             
            System.Diagnostics.Process p = new System.Diagnostics.Process(); // Запускается командная строка с параметром Shutdown на 12 часов. Компьютер который не выключен перезагрузится.
             p.StartInfo.FileName = "cmd.exe";
             p.StartInfo.Arguments = "/c shutdown -r -t 43200";
             p.Start(); 
         }
 
       
 
         private void button2_Click(object sender, EventArgs e) // Вторая кнопка спрятать программу
         {
             this.WindowState = FormWindowState.Minimized;
             this.ShowInTaskbar = false;
             
         }
 
         private void notifyIcon1_MouseDoubleClick_1(object sender, MouseEventArgs e)
         {
           
            this.WindowState = FormWindowState.Normal;
            this.ShowInTaskbar = true;
         }
 
         private void timer2_Tick(object sender, EventArgs e)
         {
             ti -= 1;
             string mm;
             string ss;
             string hh = (ti / 3600).ToString();
             if ((ti % 3600) / 60 > 9)
             {
                 mm = ((ti % 3600) / 60).ToString();
             }
             else
             {
                 mm = "0" + ((ti % 3600) / 60).ToString();
             }
             if ((ti % 3600) % 60 > 9)
             {
                 ss = ((ti % 3600) % 60).ToString();
             }
             else
             {
                 ss = "0" + ((ti % 3600) % 60).ToString();
             }
             label10.Text = hh + ":" + mm + ":" + ss;
             if (ti < 0)
                 timer2.Stop();
             if (ti < 0)
                 MessageBox.Show("Рабочий день закончен n Сходите отдохните, Вы весь день трудились в поте лица n Желаем Вам всего наилучшего.  n Увидимся завтра. Покааа))", "Конец рабочего дня", MessageBoxButtons.OK, MessageBoxIcon.Stop);
             
         }
         private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
         {
             if (e.Button == System.Windows.Forms.MouseButtons.Right)
             {
                 contextMenuStrip1.Show(Cursor.Position);
             }
         }
 
 
         private void toolStripMenuItem2_MouseClick(object sender, MouseEventArgs e)
         {
           
             MessageBox.Show("Working it's n n n n n n Программа работает корректно, доработки ведутся r Версия программульки " + FormUpdater.my_version, "работаетсуканах..");       
         
         }
 
         private void Form1_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
         {
             this.WindowState = FormWindowState.Minimized;
             this.ShowInTaskbar = false;
         }
 
         private void Form1_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)
         {
             this.WindowState = FormWindowState.Minimized;
             this.ShowInTaskbar = false;
         }
 
 
}
    }

Прошу помощи господа.
В моём говнокоде не могу найти ошибку.
Сделал запуск программы по нажатию на button

 System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "open.exe";
p.Start();

Но вот беда. Почему то мне каждую секунду открывает программу.
Полный код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Microsoft.Win32;
using System.Security.Principal;
namespace Updater
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
t.Tick += timer1_Tick;
t2.Tick += timer2_Tick;
this.Text = "Автоматический корректировщик "; // + FormUpdater.my_version;
label3.Text = FormUpdater.my_version;
}
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
{
// Close();
}
private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e)
{
AboutBox1 a = new AboutBox1();
a.Show();
}
private void button1_Click(object sender, EventArgs e) // 1 кнопка активация в ВК
{
if (timer1.Enabled)
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "open.exe";
p.Start();
button1.Text = "Открыть доступ в ВК r продолжит таймер";
timer1.Enabled = false;
}
else
{
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "close.exe";
p.Start();
button1.Text = "Приостановить таймер";
timer1.Enabled = true;
}
//MessageBox.Show("Критическая ошибка приложения n n Данная функция не работает в этой версии программы n Версия программы " + FormUpdater.my_version, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
private void настройкиToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Окошко №1 n n n Тестовая запись r Окно настроек ещё не готово", "Настройки...", MessageBoxButtons.OK, MessageBoxIcon.Question);
}
int i;
int ti;
private void button3_Click(object sender, EventArgs e) // 3 кнопка "Тестовая"
{
System.Diagnostics.Process z = new System.Diagnostics.Process();
z.StartInfo.FileName = @"open.exe";
z.Start();
RegistryKey readKey = Registry.LocalMachine.OpenSubKey("SYSTEM\CurrentControlSet\Services\Tcpip\Parameters");
string put = (string)readKey.GetValue("DataBasePath");  //Получаем путь до etc
string put1 = put + "/hosts"; //Получаем путь до hosts
// if(File.Exists("c:/windows/system32/drivers/etc/hosts")) это альтернативный способ проверки файла хостс
if (File.Exists(put + "/hosts")) 
{
/* string path = @"\localhostupdatehosts";
string path2 = @"c:";
string path3 = put;
File.Copy(path, path2, true);
File.Copy(path, path3, true); 
не работает данная хуйня
обходим путём командной строки
*/
// string command = "xcopy ";
// System.Diagnostics.Process.Start("cmd.exe", "/C " + command);
//System.Diagnostics.Process.Start("cmd.exe", "/C " + "xcopy admin\update\close\hosts u0022%windir%\system32\drivers\etc\u0022 /H /E /G /Q /R /Y");
button3.Enabled = false; // делаем кнопку неактивной
i = 3600;   // время на открытие контакта
label6.Text = i.ToString();  // отображение времени в поле "неизвестно"
timer1.Interval = 1000; 
timer1.Enabled = true;  // делаем таймер активным
timer1.Start();   // запускаем таймер
button3.Text = "Доступ в ВК активен на 1 час";
}   
else
{
MessageBox.Show("Критическая ошибка. r Срочно позовите системного администратора! n У Вас ВИРУС!!!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void timer1_Tick(object sender, EventArgs e)
{
i -= 1;
string mm;
string ss;
string hh = (i / 3600).ToString();
if ((i % 3600) / 60 > 9)
{
mm = ((i % 3600) / 60).ToString();
}
else
{
mm = "0" + ((i % 3600) / 60).ToString();
}
if ((i % 3600) % 60 > 9)
{
ss = ((i % 3600) % 60).ToString();
}
else
{
ss = "0" + ((i % 3600) % 60).ToString();
}
label6.Text = hh + ":" + mm + ":" + ss;
if  (i < 0)
timer1.Stop();
if (i < 0)
MessageBox.Show("Ваше время доступа истекло n Пожалуйста сверните программу n n n Новый доступ будет доступен через 12 часов", "Завершение работы", MessageBoxButtons.OK, MessageBoxIcon.Stop);
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = @"close.exe";
p.Start();
}
private void trackBar1_Scroll(object sender, EventArgs e)
{
Form1.ActiveForm.Opacity = trackBar1.Value / (double)trackBar1.Maximum;
}
private void Form1_Load(object sender, EventArgs e)
{
t2.Start();
ti = 28800;   // время До конца рабочего дня
label10.Text = i.ToString();  // отображение времени в поле "неизвестно"
timer2.Interval = 1000;
timer2.Enabled = true;  // делаем таймер активным
timer2.Start();   // запускаем таймер
this.ControlBox = false;  // При загрузке окна, Кнопка Закрыть исчезает
System.Diagnostics.Process p = new System.Diagnostics.Process(); // Запускается командная строка с параметром Shutdown на 12 часов. Компьютер который не выключен перезагрузится.
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/c shutdown -r -t 43200";
p.Start(); 
}
private void button2_Click(object sender, EventArgs e) // Вторая кнопка спрятать программу
{
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false;
}
private void notifyIcon1_MouseDoubleClick_1(object sender, MouseEventArgs e)
{
this.WindowState = FormWindowState.Normal;
this.ShowInTaskbar = true;
}
private void timer2_Tick(object sender, EventArgs e)
{
ti -= 1;
string mm;
string ss;
string hh = (ti / 3600).ToString();
if ((ti % 3600) / 60 > 9)
{
mm = ((ti % 3600) / 60).ToString();
}
else
{
mm = "0" + ((ti % 3600) / 60).ToString();
}
if ((ti % 3600) % 60 > 9)
{
ss = ((ti % 3600) % 60).ToString();
}
else
{
ss = "0" + ((ti % 3600) % 60).ToString();
}
label10.Text = hh + ":" + mm + ":" + ss;
if (ti < 0)
timer2.Stop();
if (ti < 0)
MessageBox.Show("Рабочий день закончен n Сходите отдохните, Вы весь день трудились в поте лица n Желаем Вам всего наилучшего.  n Увидимся завтра. Покааа))", "Конец рабочего дня", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Right)
{
contextMenuStrip1.Show(Cursor.Position);
}
}
private void toolStripMenuItem2_MouseClick(object sender, MouseEventArgs e)
{
MessageBox.Show("Working it's n n n n n n Программа работает корректно, доработки ведутся r Версия программульки " + FormUpdater.my_version, "работаетсуканах..");       
}
private void Form1_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
{
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false;
}
private void Form1_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)
{
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false;
}
}
}

What I want is to be able to run a function every second, irrelevant of how long the function takes (it should always be under a second). I’ve considered a number of options but not sure which is best.

If I just use the delay function it isn’t going to take into account the time the function takes to run.

If I time the function and then subtract that from a second and make up the rest in the delay it’s not going to take into account the time calculations.

I tried using threading.timer (I’m not sure about the ins and outs of how this works) but it did seem to be slower than the 1s.

Here’s the code I tried for testing threading.timer:

def update(i):
sys.stdout.write(str(i)+'r')
sys.stdout.flush()
print i
i += 1
threading.Timer(1, update, [i]).start()

Is there a way to do this irrelevant of the length of the time the function takes?

asked May 30, 2012 at 9:07

DNN's user avatar

3

This will do it, and its accuracy won’t drift with time.

import time
start_time = time.time()
interval = 1
for i in range(20):
time.sleep(start_time + i*interval - time.time())
f()

3

The approach using a threading.Timer (see code below) should in fact not be used, as a new thread is launched at every interval and this loop can never be stopped cleanly.

# as seen here: https://stackoverflow.com/a/3393759/1025391
def update(i):
threading.Timer(1, update, [i+1]).start()
# business logic here

If you want a background loop it is better to launch a new thread that runs a loop as described in the other answer. Which is able to receive a stop signal, s.t. you can join() the thread eventually.

This related answer seems to be a great starting point to implement this.

answered May 30, 2012 at 9:15

moooeeeep's user avatar

moooeeeepmoooeeeep

30.8k21 gold badges95 silver badges181 bronze badges

3

if f() always takes less than a second then to run it on a one second boundary (without a drift):

import time
while True:
time.sleep(1 - time.monotonic() % 1)      
f()

The idea is from @Dave Rove’s answer to a similar question.

To understand how it works, consider an example:

  1. time.monotonic() returns 13.7 and time.sleep(0.3) is called
  2. f() is called around (±some error) 14 seconds (since time.monotonic() epoch)
  3. f() is run and it takes 0.1 (< 1) seconds
  4. time.monotonic() returns around 14.1 seconds and time.sleep(0.9) is called
  5. Step 2. is repeated around 15 seconds (since time.monotonic() epoch)
  6. f() is run and it takes 0.3 (< 1) seconds (note: the value is different from Step 2.)
  7. time.monotonic() returns around 15.3 and time.sleep(0.7) is called
  8. f() is called around 16 seconds and the loop is repeated.

At each step f() is called on a one second boundary (according to time.monotonic() timer). The errors do not accumulate. There is no drift.

See also: How to run a function periodically in python (using tkinter).

Jason Webster's user avatar

answered Feb 28, 2016 at 19:20

jfs's user avatar

jfsjfs

390k188 gold badges962 silver badges1647 bronze badges

How about this: After each run, sleep for (1.0 - launch interval) seconds. You can change the terminate condition by changing while True:. Although if the your function takes more than 1 second to run, this will go wrong.

from time import time, sleep
while True:
startTime = time()
yourFunction()
endTime = time()-startTime
sleep(1.0-endTime)

answered May 30, 2012 at 9:29

lllluuukke's user avatar

lllluuukkelllluuukke

1,2942 gold badges12 silver badges17 bronze badges

Threading may be a good choice. The basic concept is as follows.

import threading
def looper():    
# i as interval in seconds    
threading.Timer(i, looper).start()    
# put your action here
foo()
#to start 
looper()

answered Jun 28, 2014 at 15:14

Znatz's user avatar

ZnatzZnatz

1,5402 gold badges18 silver badges30 bronze badges

I would like to recommend the following code. You can replace the True with any condition if you want.

while True:
time.sleep(1) #sleep for 1 second
func()    #function you want to trigger

Tell me if it works.

answered Mar 31, 2020 at 6:53

Grasshopper's user avatar

GrasshopperGrasshopper

3432 silver badges13 bronze badges

1) Отредактируйте предложение: исправьте лексическую ошибку, исключив лишнее слово. Выпишите это слово.
* Каждую секунду времени солдаты с огромным напряжением ждали атаки.

2) Установите соответствие между грамматическими ошибками и предложениями, в которых они допущены: к каждой позиции первого столбца подберите соответствующую позицию из второго столбца
ГРАММАТИЧЕСКИЕ ОШИБКИ
А.нарушение связи между подлежащим и сказуемым
Б.нарушение в построении предложения с несогласованным приложением
В.ошибка в построении предложения с однородными членами
Г.неправильное построение предложения с косвенной речью
Д.нарушение в построении предложения с причастным оборотом
ПРЕДЛОЖЕНИЯ
1. Все, кто посмотрел новый фильм известного режиссёра, высказывали весьма
противоречивые суждения.
2. Те, кто ни разу не любовался величественной панорамой столицы с вершины
колокольни Ивана Великого, не имеет представления о Москве.
3. Марина Цветаева безмерно уважала и восхищалась творчеством Анны Ахматовой.
4. В стихотворении «Поэт» М. Ю. Лермонтова аллегорически изображается кризис современной поэзии, объясняемый социальной апатией.
5. Язык — не только лучший показатель общей культуры, но и лучший воспитатель человека.
6. Русский хирург и анатом Н. И. Пирогов завещал нам, что «учитесь, читайте, размышляйте и извлекайте из всего самое полезное».
7. Самый большой сборник «Пословицы русского народа» В.И.Даля описывает более 30 000 пословиц и поговорок, содержащий 180 разрядов по разным темам.
8. Приезжий (видимо, турист) спросил у прохожего, есть ли поблизости от вокзала почтовое отделение.
9. Путь духовных исканий героев подробно описан в романе Л.Толстого «Войне и мире».

Помогите пожалуйста! Очень надо!!!)

Условие

Отредактируйте предложение: исправьте лексическую ошибку, исключив лишнее слово. Выпишите это слово.

На протяжении всей нашей жизни в наш мозг каждую секунду времени поступает множество сенсорных сигналов.

Показать ответ

Источник: «Русский язык. Типовые тестовые задания ЕГЭ 2019». Под ред. И. П. Васильевых., Ю. Н. Гостева.

Рассказать друзьям

Лучшие онлайн-курсы для подготовки к ЕГЭ

Лучшие репетиторы для сдачи ЕГЭ

Комментарии

Задавайте ваши вопросы и помогайте друг другу в решении задач

Комментарии содержащие в себе рекламу, нецензурную лексику и не относящиеся к тематике сайта будут удалены

Лучшие репетиторы для сдачи ЕГЭ

© 2016—2023
Все права защищены.

Служба поддержки портала

Отредактируйте предложение: исправьте лексическую ошибку, исключив лишнее слово. Выпишите это слово.

Вечером в среду Мария впервые дебютировала на всероссийском турнире по конному спорту.

Ошибка в данном предложении — плеоназм. Дублируется смысл. Слово “дебютировала” уже подразумевает значение “впервые выступала”. Поэтому использовать наречие “впервые” нет необходимости.

Ответ: ВПЕРВЫЕ

Отредактируйте предложение: исправьте лексическую ошибку, исключив лишнее слово. Выпишите это слово.

Каждую секунду времени человеку необходимо проводить с пользой, если он хочет стать успешным.

Ошибка в данном предложении — плеоназм. Дублируется смысл. Слово “секунда” уже подразумевает значение “единица времени”. Поэтому использовать слово “времени” нет необходимости.

Ответ: ВРЕМЕНИ

Отредактируйте предложение: исправьте лексическую ошибку, исключив лишнее слово. Выпишите это слово.

В 2017 году Лариса впервые дебютировала на сцене Рыбинского драматического театра в яркой роли Дездемоны.

Ошибка в данном предложении — плеоназм. Дублируется смысл. Слово “дебютировала” уже подразумевает значение “впервые выступала”. Поэтому использовать наречие “впервые” нет необходимости.

Ответ: ВПЕРВЫЕ

Отредактируйте предложение: исправьте лексическую ошибку, исключив лишнее слово. Выпишите это слово.

Он был родом из такого глухого захолустья, в котором никогда ничего не происходило.

Ошибка в данном предложении — плеоназм. Дублируется смысл. Слово “захолустье” уже подразумевает значение “глухое место”. Поэтому использовать прилагательное “глухое” нет необходимости.

Ответ: ГЛУХОГО

Отредактируйте предложение: исправьте лексическую ошибку, исключив лишнее слово. Выпишите это слово.

Востряков написал свою автобиографию в пятнадцать лет, чем чрезвычайно развеселил отца.

Ошибка в данном предложении — плеоназм. Дублируется смысл. Слово “автобиография” уже подразумевает значение “описание своей жизни”. Поэтому использовать местоимение “своя” нет необходимости.

Ответ: СВОЮ

Отредактируйте предложение: исправьте лексическую ошибку, исключив лишнее слово. Выпишите это слово.

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

Ошибка в данном предложении — плеоназм. Дублируется смысл. Словосочетание “красный диплом” идентично по смыслу словосочетанию “диплом с отличием”. Поэтому в использовании слова “отличник” здесь нет никакой необходимости.

Ответ: ОТЛИЧНИКА

Отредактируйте предложение: исправьте лексическую ошибку, исключив лишнее слово. Выпишите это слово.

Если вам нездоровится, ни в коем случае не занимайтесь самолечением и не обращайтесь к так называемым целителям — доверьте своё здоровье опытным профессионалам из нашей клиники!

Ошибка в данном предложении — плеоназм. Дублируется смысл. В слове “профессионал” уже подразумевается значение “опытный” (“неопытный профессионал” — нонсенс). Поэтому использовать слово “опытный” здесь нет никакой необходимости.

Ответ: ОПЫТНЫМ

Понравилась статья? Поделить с друзьями:
  • Каждый герой имеет свои индивидуальные черты ошибка лексическая
  • Каждый вечер я полоскаю горло настоем ромашки ошибка
  • Каждую ошибку да я плохой парень
  • Каждодневная борьба корректора над ошибками 6 букв
  • Каждая ошибка нивелирует один правильный выбор