С Новым годом! Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для mozgotron
64 / 73 / 1
Регистрация: 23.05.2015
Сообщений: 360
Записей в блоге: 52

Тайм-кодер

06.12.2019, 00:18. Показов 1735. Ответов 1

Студворк — интернет-сервис помощи студентам
Тайм-кодер — приложение Windows Forms, демонстрирующее создание меток времени (time stamp) в виде 8-разрядных 36-ричных чисел.

Классификация программы: счётчик, конвертер чисел, вспомогательная (для использования внутри других программ).

Программа подсчитывает количество секунд, прошедших от 01.01.0001 00:00:00 до настоящего времени и конвертирует получившееся десятичное число в восьмизначное число с основанием 36. Также в этом приложении можно генерировать тайм-коды на произвольные дату/время и числа, введённые пользователем.

Написан на языке VB .NET.
Требования: библиотека .NET Framework 3.5 или выше.

Скриншот единственного окна Тайм-кодера:


Листинг кода:
VB.NET
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
Imports Microsoft.VisualBasic
Imports Microsoft.VisualBasic.Strings
 
Public Class Form1
 
    Dim SecAllYear As UInt64
    Dim TimeCode36 As String
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        DateTimeNow()
    End Sub
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        DateTimeNow()
    End Sub
 
    Private Sub DateTimeNow()
        Dim DTN As Date = Date.Now
        Label3.Text = DTN.ToString
        Label4.Text = SecondsCounter().ToString
        Label6.Text = Converter(SecAllYear).ToString
    End Sub
 
    Private Function SecondsCounter()
        'Вычисляем секунды прошедших лет
        Dim ThisYear As UInt32 = Date.Now.Year
        Dim LeapYear As UInt32 = (ThisYear - 1) \ 4
        Dim LeanYear As UInt32 = LeapYear \ 100 + 1
        LeapYear = LeapYear - LeanYear
        LeanYear = ThisYear - LeapYear
        Dim LastYearSec As UInt64 = LeapYear * 31622400 + LeanYear * 31536000
        'Вычисляем секунды текущего года
        Dim DOY As UInt32 = Date.Now.DayOfYear
        Dim HTD As UInt32 = Date.Now.Hour
        Dim MTD As UInt32 = Date.Now.Minute
        Dim STD As UInt32 = Date.Now.Second
        Dim SecDayThisYear As UInt32 = (DOY - 1) * 86400
        Dim SecThisDay As UInt32 = 0
        Dim SecThisHou As UInt32 = 0
        If HTD <> 0 Then SecThisDay = HTD * 3600
        If MTD <> 0 Then SecThisHou = MTD * 60
        'Суммируем все секунды прошедших лет и текущего года
        SecAllYear = LastYearSec + SecDayThisYear + SecThisDay + SecThisHou + STD
        Return SecAllYear
    End Function
 
    Private Function Converter(ByVal TimeCode10 As UInt64)
        Dim AlphaBeta As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        Dim ChrResult As String = Nothing
        Dim ConResult As UInt64
        Dim SubResult As UInt64
        Dim SecResult As UInt64
        Do While TimeCode10 > 35
            ConResult = TimeCode10 \ 36
            SecResult = ConResult * 36
            SubResult = TimeCode10 - SecResult
            ChrResult = Mid(AlphaBeta, SubResult + 1, 1) & ChrResult
            TimeCode10 = ConResult
        Loop
        TimeCode36 = Mid(AlphaBeta, TimeCode10 + 1, 1) & ChrResult
        Return TimeCode36.PadLeft(8, "0")
    End Function
 
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim RandYear As UInt32 = DateTimePicker1.Value.Year
        Dim LeapYear As UInt32 = (RandYear - 1) \ 4
        Dim LeanYear As UInt32 = LeapYear \ 100 + 1
        LeapYear = LeapYear - LeanYear
        LeanYear = RandYear - LeapYear
        Dim RandYearSec As UInt64 = LeapYear * 31622400 + LeanYear * 31536000
        Dim DOY As UInt32 = DateTimePicker1.Value.DayOfYear
        Dim HTD As UInt32 = DateTimePicker2.Value.Hour
        Dim MTD As UInt32 = DateTimePicker2.Value.Minute
        Dim STD As UInt32 = DateTimePicker2.Value.Second
        Dim SecDayRandYear As UInt32 = (DOY - 1) * 86400
        Dim SecRandDay As UInt32 = 0
        Dim SecRandHou As UInt32 = 0
        If HTD <> 0 Then SecRandDay = HTD * 3600
        If MTD <> 0 Then SecRandHou = MTD * 60
        SecAllYear = RandYearSec + SecDayRandYear + SecRandDay + SecRandHou + STD
        TextBox1.Text = SecAllYear.ToString
    End Sub
 
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        If TextBox1.Text = "" Or IsNumeric(TextBox1.Text) = False Then
            MsgBox("Введите число от 0 до 2.821.109.907.455.")
        ElseIf CULng(TextBox1.Text) > 2821109907455 Then
            MsgBox("Введите число не больше 2.821.109.907.455.")
        Else
            Dim AlphaBeta As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
            Dim ChrResult As String = Nothing
            Dim ConResult As UInt64
            Dim SubResult As UInt64
            Dim SecResult As UInt64
            Dim TimeCode10 As ULong = CULng(TextBox1.Text)
            Do While TimeCode10 > 35
                ConResult = TimeCode10 \ 36
                SecResult = ConResult * 36
                SubResult = TimeCode10 - SecResult
                ChrResult = Mid(AlphaBeta, SubResult + 1, 1) & ChrResult
                TimeCode10 = ConResult
            Loop
            TimeCode36 = Mid(AlphaBeta, TimeCode10 + 1, 1) & ChrResult
            Label8.Text = TimeCode36.PadLeft(8, "0")
        End If
    End Sub
 
End Class
ZIP-архив для скачивания содержит папку с исходником и исполняемый файл Тайм-кодер.exe для тестирования:
Тайм-кодер 0TA76JVP.zip

Хеш-суммы ZIP-архива:
Adler32: 85624FA3
CRC32: BA54D728
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.12.2019, 00:18
Ответы с готовыми решениями:

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

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

Реал тайм рисовалка
Здравствуйте. Нужна open source real-time совместная рисовалка. С геометрическими фигурами из коробки. Или с хорошими доками, из которых...

1
Эксперт .NET
 Аватар для Usaga
14113 / 9330 / 1350
Регистрация: 21.01.2016
Сообщений: 35,057
06.12.2019, 06:05
Цитата Сообщение от mozgotron Посмотреть сообщение
Требования: библиотека .NET Framework 3.5 или выше.
Не "или выше". Только 3.5. Выше уже будут NF с другой версией рантайма, на котором ваше приложение уже не заработает. В чём была причина выбора версии 3.5? Поддержка Windows XP и трёх калек, что ей ещё пользуются?) Расширенная поддержка семёрки-то истекает в январе следующего года, а вы нацеливаетесь на труп.

Смело используйте .NET Framework 4.8. Или вообще .NET Core 3.1, там поддержку WinForms завезли. И можно паблишить сборку укомплектованную рантаймом. Ничего в систему ставить не придётся.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2019, 06:05
Помогаю со студенческими работами здесь

Две задачи на тайм.
Изрядно потрепал себе нервы с 2-умя задачами на работу со временем... Первая : В парикмахерской работают три мастера. Каждый тратит на...

Скачки фрейм тайм
Добрый день собрал компьютер конфигурация такая Процессор AMD Ryzen 5 2600x Видеокарта GTX 1660 TI 6GB блок питания 500в ...

Программа для тайм-трекинга
Подскажите, пожалуйста, программку, которая трекает время. Цель - сидеть на одном сайте и изучать материал, иногда заходить в Notepad++....

Что-то вроде тайм кода
Приветствую. Появилась одна идея, но пока не могу сообразить как ее реализовать. Есть сайт, на котором есть несколько треков....

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru