1 / 1 / 0
Регистрация: 22.04.2014
Сообщений: 70

Подсчет пени в зависимости от даты

18.07.2017, 09:34. Показов 1251. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.

Нужна помощь:
Нужно накидать программу которая считает пеню.

Исходные данные: начала даты пени, конечная дата расчета пени.
Сложность - имеются периоды когда % пени меняется.

Пример:
Начало даты начисления пени 02.01.2016, конец начисления пени - 10.10.2016
в этот период действовали ставки пени: с 01.01.2016 по 14.06.2016 - 0.000366, с 15.06.2016 по 19.09.2016 - 0.00035 и с 20.09.2016 - 0,000333

есть идеи как это лучше реализовать?

Вариант один накидал, но он не предусматривает изменения даты начала периода начисления

Кликните здесь для просмотра всего текста
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
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
243
244
245
246
247
248
249
250
251
252
253
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
    Public Const date2012 = "14.09.2012"
    Public Const date2016 = "01.01.2016"
    Public Const date062016 = "14.06.2016"
    Public Const date092016 = "19.09.2016"
    Public Const date032017 = "27.03.2017"
    Public Const date052017 = "02.05.2017"
    Public Const dec2016 = "02.12.2016"
    Public Const st1 = 31
    Public Const st2 = 165
    Public Const st3 = 97
    Public Const st4 = 73
    Public Const st5 = 116
    Public Const st6 = 36
    Public Const pn1 = 0.000275
    Public Const pn2 = 0.000366
    Public Const pn3 = 0.00035
    Public Const pn4 = 0.00033333
    Public Const pn5 = 0.000325
    Public Const pn6 = 0.0003083
 
    Dim appExcel As Object
    Dim I As Integer = 0
 
 
Private Sub BtExcel_Click(sender As Object, e As EventArgs) Handles BtExcel.Click
        Dim ExcelApp As Excel.Application = CreateObject("Excel.Application")
        Dim ExcelBook As Excel.Workbook = ExcelApp.Workbooks.Add
        Dim xls As Excel.Worksheet = ExcelBook.ActiveSheet
        ExcelApp.Visible = False
        xls.Cells(1, 1) = "Дата начала действия недоимки"
        xls.Cells(1, 2) = "Дата окончания действия недоимки"
        xls.Cells(1, 3) = "Число дней просрочки"
        xls.Cells(1, 4) = "Недоимка для пени"
        xls.Cells(1, 5) = "Ставка пени"
        xls.Cells(1, 6) = "Начислено пени за период"
 
        Dim raz As Integer
 
        raz = Math.Abs(DateDiff(DateInterval.Day, DateEnd.Value.Date, DateOne.Value.Date)) 'разница между датой начала и датой конца
 
        Select Case raz
            Case >= (st1 + st2 + st3 + st4 + st5 + st6)
                xls.Cells(2, 1) = DateOne.Value.Date
                xls.Cells(2, 2) = CDate(date2016).AddDays(-1)
                xls.Cells(2, 3) = st1
                xls.Cells(2, 4) = TXT2015.Text
                xls.Cells(2, 5) = pn1
                xls.Cells(2, 6) = Val(TXT2015.Text) * st1 * pn1
 
                xls.Cells(3, 1) = date2016
                xls.Cells(3, 2) = CDate(date062016).AddDays(-1)
                xls.Cells(3, 3) = st2
                xls.Cells(3, 4) = TXT2015.Text
                xls.Cells(3, 5) = pn2
                xls.Cells(3, 6) = Val(TXT2015.Text) * st2 * pn2
 
                xls.Cells(4, 1) = date062016
                xls.Cells(4, 2) = CDate(date092016).AddDays(-1)
                xls.Cells(4, 3) = st3
                xls.Cells(4, 4) = TXT2015.Text
                xls.Cells(4, 5) = pn3
                xls.Cells(4, 6) = Val(TXT2015.Text) * st3 * pn3
 
                xls.Cells(5, 1) = date092016
                xls.Cells(5, 2) = CDate(dec2016).AddDays(-1)
                xls.Cells(5, 3) = st4
                xls.Cells(5, 4) = TXT2015.Text
                xls.Cells(5, 5) = pn4
                xls.Cells(5, 6) = Val(TXT2015.Text) * st4 * pn4
 
                xls.Cells(6, 1) = dec2016
                xls.Cells(6, 2) = CDate(date032017).AddDays(-1)
                xls.Cells(6, 3) = st5
                xls.Cells(6, 4) = TXT2016.Text
                xls.Cells(6, 5) = pn4
                xls.Cells(6, 6) = Val(TXT2016.Text) * st5 * pn4
 
                xls.Cells(7, 1) = date032017
                xls.Cells(7, 2) = CDate(date052017).AddDays(-1)
                xls.Cells(7, 3) = st6
                xls.Cells(7, 4) = TXT2016.Text
                xls.Cells(7, 5) = pn5
                xls.Cells(7, 6) = Val(TXT2016.Text) * st6 * pn5
 
                xls.Cells(8, 1) = date052017
                xls.Cells(8, 2) = DateEnd.Value.Date
                xls.Cells(8, 3) = raz - st6 - st5 - st4 - st3 - st2 - st1 + 1
                xls.Cells(8, 4) = TXT2016.Text
                xls.Cells(8, 5) = pn6
                xls.Cells(8, 6) = Val(TXT2016.Text) * (raz - st6 - st5 - st4 - st3 - st2 - st1 + 1) * pn6
 
            Case >= (st1 + st2 + st3 + st4 + st5) And raz < (st1 + st2 + st3 + st4 + st5 + st6)
                xls.Cells(2, 1) = DateOne.Value.Date
                xls.Cells(2, 2) = CDate(date2016).AddDays(-1)
                xls.Cells(2, 3) = st1
                xls.Cells(2, 4) = TXT2015.Text
                xls.Cells(2, 5) = pn1
                xls.Cells(2, 6) = Val(TXT2015.Text) * st1 * pn1
 
                xls.Cells(3, 1) = date2016
                xls.Cells(3, 2) = CDate(date062016).AddDays(-1)
                xls.Cells(3, 3) = st2
                xls.Cells(3, 4) = TXT2015.Text
                xls.Cells(3, 5) = pn2
                xls.Cells(3, 6) = Val(TXT2015.Text) * st2 * pn2
 
                xls.Cells(4, 1) = date062016
                xls.Cells(4, 2) = CDate(date092016).AddDays(-1)
                xls.Cells(4, 3) = st3
                xls.Cells(4, 4) = TXT2015.Text
                xls.Cells(4, 5) = pn3
                xls.Cells(4, 6) = Val(TXT2015.Text) * st3 * pn3
 
                xls.Cells(5, 1) = date092016
                xls.Cells(5, 2) = CDate(dec2016).AddDays(-1)
                xls.Cells(5, 3) = st4
                xls.Cells(5, 4) = TXT2015.Text
                xls.Cells(5, 5) = pn4
                xls.Cells(5, 6) = Val(TXT2015.Text) * st4 * pn4
 
                xls.Cells(6, 1) = dec2016
                xls.Cells(6, 2) = CDate(date032017).AddDays(-1)
                xls.Cells(6, 3) = st5
                xls.Cells(6, 4) = TXT2016.Text
                xls.Cells(6, 5) = pn4
                xls.Cells(6, 6) = Val(TXT2016.Text) * st5 * pn4
 
                xls.Cells(7, 1) = date032017
                xls.Cells(7, 2) = CDate(date052017).AddDays(-1)
                xls.Cells(7, 3) = st6
                xls.Cells(7, 4) = TXT2016.Text
                xls.Cells(7, 5) = pn5
                xls.Cells(7, 6) = Val(TXT2016.Text) * (raz - st5 - st4 - st3 - st2 - st1 + 1) * pn5
 
            Case <= (st1 + st2 + st3 + st4 + st5) And raz > (st1 + st2 + st3 + st4)
                xls.Cells(2, 1) = DateOne.Value.Date
                xls.Cells(2, 2) = CDate(date2016).AddDays(-1)
                xls.Cells(2, 3) = st1
                xls.Cells(2, 4) = TXT2015.Text
                xls.Cells(2, 5) = pn1
                xls.Cells(2, 6) = Val(TXT2015.Text) * st1 * pn1
 
                xls.Cells(3, 1) = date2016
                xls.Cells(3, 2) = CDate(date062016).AddDays(-1)
                xls.Cells(3, 3) = st2
                xls.Cells(3, 4) = TXT2015.Text
                xls.Cells(3, 5) = pn2
                xls.Cells(3, 6) = Val(TXT2015.Text) * st2 * pn2
 
                xls.Cells(4, 1) = date062016
                xls.Cells(4, 2) = CDate(date092016).AddDays(-1)
                xls.Cells(4, 3) = st3
                xls.Cells(4, 4) = TXT2015.Text
                xls.Cells(4, 5) = pn3
                xls.Cells(4, 6) = Val(TXT2015.Text) * st3 * pn3
 
                xls.Cells(5, 1) = date092016
                xls.Cells(5, 2) = CDate(dec2016).AddDays(-1)
                xls.Cells(5, 3) = st4
                xls.Cells(5, 4) = TXT2015.Text
                xls.Cells(5, 5) = pn4
                xls.Cells(5, 6) = Val(TXT2015.Text) * st4 * pn4
 
                xls.Cells(6, 1) = dec2016
                xls.Cells(6, 2) = CDate(date032017).AddDays(-1)
                xls.Cells(6, 3) = st5
                xls.Cells(6, 4) = TXT2016.Text
                xls.Cells(6, 5) = pn4
                xls.Cells(6, 6) = Val(TXT2016.Text) * (raz - st4 - st3 - st2 - st1 + 1) * pn4
 
            Case <= (st1 + st2 + st3 + st4) And raz > (st1 + st2 + st3)
                xls.Cells(2, 1) = DateOne.Value.Date
                xls.Cells(2, 2) = CDate(date2016).AddDays(-1)
                xls.Cells(2, 3) = st1
                xls.Cells(2, 4) = TXT2015.Text
                xls.Cells(2, 5) = pn1
                xls.Cells(2, 6) = Val(TXT2015.Text) * st1 * pn1
 
                xls.Cells(3, 1) = date2016
                xls.Cells(3, 2) = CDate(date062016).AddDays(-1)
                xls.Cells(3, 3) = st2
                xls.Cells(3, 4) = TXT2015.Text
                xls.Cells(3, 5) = pn2
                xls.Cells(3, 6) = Val(TXT2015.Text) * st2 * pn2
 
                xls.Cells(4, 1) = date062016
                xls.Cells(4, 2) = CDate(date092016).AddDays(-1)
                xls.Cells(4, 3) = st3
                xls.Cells(4, 4) = TXT2015.Text
                xls.Cells(4, 5) = pn3
                xls.Cells(4, 6) = Val(TXT2015.Text) * st3 * pn3
 
                xls.Cells(5, 1) = date092016
                xls.Cells(5, 2) = CDate(dec2016).AddDays(-1)
                xls.Cells(5, 3) = st4
                xls.Cells(5, 4) = TXT2015.Text
                xls.Cells(5, 5) = pn4
                xls.Cells(5, 6) = Val(TXT2015.Text) * (raz - st3 - st2 - st1 + 1) * pn4
 
            Case <= (st1 + st2 + st3) And raz > (st1 + st2)
                xls.Cells(2, 1) = DateOne.Value.Date
                xls.Cells(2, 2) = CDate(date2016).AddDays(-1)
                xls.Cells(2, 3) = st1
                xls.Cells(2, 4) = TXT2015.Text
                xls.Cells(2, 5) = pn1
                xls.Cells(2, 6) = Val(TXT2015.Text) * st1 * pn1
 
                xls.Cells(3, 1) = date2016
                xls.Cells(3, 2) = CDate(date062016).AddDays(-1)
                xls.Cells(3, 3) = st2
                xls.Cells(3, 4) = TXT2015.Text
                xls.Cells(3, 5) = pn2
                xls.Cells(3, 6) = Val(TXT2015.Text) * st2 * pn2
 
                xls.Cells(4, 1) = date062016
                xls.Cells(4, 2) = CDate(date092016).AddDays(-1)
                xls.Cells(4, 3) = st3
                xls.Cells(4, 4) = TXT2015.Text
                xls.Cells(4, 5) = pn3
                xls.Cells(4, 6) = Val(TXT2015.Text) * (raz - st2 - st1 + 1) * pn3
 
            Case <= (st1 + st2) And raz > (st1)
                xls.Cells(2, 1) = DateOne.Value.Date
                xls.Cells(2, 2) = CDate(date2016).AddDays(-1)
                xls.Cells(2, 3) = st1
                xls.Cells(2, 4) = TXT2015.Text
                xls.Cells(2, 5) = pn1
                xls.Cells(2, 6) = Val(TXT2015.Text) * st1 * pn1
 
                xls.Cells(3, 1) = date2016
                xls.Cells(3, 2) = CDate(date062016).AddDays(-1)
                xls.Cells(3, 3) = st2
                xls.Cells(3, 4) = TXT2015.Text
                xls.Cells(3, 5) = pn2
                xls.Cells(3, 6) = Val(TXT2015.Text) * (raz - st1 + 1) * pn2
 
            Case <= st1
                xls.Cells(2, 1) = DateOne.Value.Date
                xls.Cells(2, 2) = CDate(date2016).AddDays(-1)
                xls.Cells(2, 3) = st1
                xls.Cells(2, 4) = TXT2015.Text
                xls.Cells(2, 5) = pn1
                xls.Cells(2, 6) = Val(TXT2015.Text) * raz * pn1
        End Select
 
        xls.Cells.ColumnWidth = 15
 
        ExcelApp.Visible = True
 
    End Sub
End Class
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.07.2017, 09:34
Ответы с готовыми решениями:

Вывод даты из базы и подсчет строк где втстречаются эти даты
В таблице mysql есть поле где хранится дата. и это дата встречается в этой таблице по несколько раз. Как в PHP вывести каждую дату и рядом...

Подсчет до даты в БД
Здравствуйте, как высчитать количество оставшихся дней до даты которая записана в БД в формате Y-m-d (поле типа Date)? Добавлено через...

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

4
4701 / 3655 / 856
Регистрация: 02.02.2013
Сообщений: 3,508
Записей в блоге: 2
18.07.2017, 14:30
Попробуйте так (не проверял, потестируйте сами)
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
Private Sub ButtonPn_Click(sender As System.Object, e As System.EventArgs) Handles ButtonPn.Click
    Dim Pn1 As New Penalty(#1/1/2016#, #6/14/2016#, 0.000366)
    Dim Pn2 As New Penalty(#6/15/2016#, #9/19/2016#, 0.00035)
    Dim Pn3 As New Penalty(#9/20/2016#, #12/14/2016#, 0.000333)
    Dim pBase As Double = 25364.25
    Dim pValue1 As Double = Pn1.getPn(pBase)
    Dim pValue2 As Double = Pn1.getPn(pBase)
    Dim pValue3 As Double = Pn1.getPn(pBase)
    MsgBox("Итого: " & (pValue1 + pValue2 + pValue3).ToString)
End Sub
'…
Public Class Penalty
    Public Sub New(ByVal pS As Date, ByVal pE As Date, ByVal pR As Double)
        MyBase.New()
        _pStart = pS
        _pEnd = pE
        _pRate = pR
    End Sub
    Public Property pStart As Date
    Public Property pEnd As Date
    Public Property pRate As Double
    Public Function getPn(ByVal pValue As Double) As Double
        Dim diff As TimeSpan = pEnd.Subtract(pStart)
        Return pValue * pRate * diff.Days
    End Function
End Class
0
1 / 1 / 0
Регистрация: 22.04.2014
Сообщений: 70
18.07.2017, 15:05  [ТС]
правильно я понимаю:
Цитата Сообщение от ovva Посмотреть сообщение
VB.NET
1
2
3
Dim Pn1 As New Penalty(#1/1/2016#, #6/14/2016#, 0.000366)
Dim Pn2 As New Penalty(#6/15/2016#, #9/19/2016#, 0.00035)
Dim Pn3 As New Penalty(#9/20/2016#, #12/14/2016#, 0.000333)
- это у нас переменные, с новым типом данных в которые мы пишем сроки действия пени и ставки в эти периоды

Цитата Сообщение от ovva Посмотреть сообщение
VB.NET
1
Dim pBase As Double = 25364.25
- рандомная сумма?
Цитата Сообщение от ovva Посмотреть сообщение
VB.NET
1
2
3
Dim pValue1 As Double = Pn1.getPn(pBase)
Dim pValue2 As Double = Pn1.getPn(pBase)
Dim pValue3 As Double = Pn1.getPn(pBase)
переменной присваиваем результат работы функции. а точно везде Pn1.getPn ? а не Pn1.getPn, Pn2.getPn, Pn3.getPn?
Цитата Сообщение от ovva Посмотреть сообщение
VB.NET
1
2
3
4
5
6
7
8
9
Public Sub New(ByVal pS As Date, ByVal pE As Date, ByVal pR As Double)
MyBase.New()
_pStart = pS
_pEnd = pE
_pRate = pR
End Sub
Public Property pStart As Date
Public Property pEnd As Date
Public Property pRate As Double
- более или менее понятно.

Цитата Сообщение от ovva Посмотреть сообщение
VB.NET
1
2
3
4
Public Function getPn(ByVal pValue As Double) As Double
Dim diff As TimeSpan = pEnd.Subtract(pStart)
Return pValue * pRate * diff.Days
End Function
немного сложнее.
в diff получаем разницу времени. Между какими датами? немного не допер.
возвращаем сумма*ставку*разницу дней

правильно понял?
0
4701 / 3655 / 856
Регистрация: 02.02.2013
Сообщений: 3,508
Записей в блоге: 2
18.07.2017, 19:46
Лучший ответ Сообщение было отмечено didimozg как решение

Решение

Привык все оформлять в классах (с учетом возможного расширения задачи), но в данном случае можно ограничиться обычной функцией
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Function getPn(ByVal pValue As Double, ByVal pStart As Date, ByVal pEnd As Date, ByVal pRate As Double) As Double
    Dim diff As TimeSpan = pEnd.Subtract(pStart)
    'diff.Days - в полных днях от pStart до pEnd
    'pRate - ставка
    Return pValue * pRate * diff.Days
End Function
Private Sub ButtonPn _Click(sender As System.Object, e As System.EventArgs) Handles ButtonPn.Click
    Dim pBase As Double = 25364.25 'значение на которое начисляются пени
    Dim pValue1 As Double = getPn(pBase, #1/1/2016#, #6/14/2016#, 0.000366)
    Dim pValue2 As Double = getPn(pBase, #6/15/2016#, #9/19/2016#, 0.00035)
    Dim pValue3 As Double = getPn(pBase, #9/20/2016#, #12/14/2016#, 0.000333)
    MsgBox("Итого: " & (pValue1 + pValue2 + pValue3).ToString)
End Sub
Добавлено через 3 часа 51 минуту
Перечитал постановку задачи. Думаю, что так будет более правильно.
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
Private Sub ButtonPn_Click(sender As System.Object, e As System.EventArgs) Handles ButtonPn.Click
    'формируем исходные данные
    Dim pBase As Double = 25364.25 'значение на которое начисляются пени
    Dim pBeginning As Date = #3/1/2016# 'начало расчетного периода
    Dim pStop As Date = #11/1/2016# 'конец расчетного периода
    Dim baseRate(2) As Penalty 'массив представляющий базу ставок (упорядочен по возрастанию дат и перекрывающий расчетный период)
    baseRate(0) = New Penalty(#1/1/2016#, #6/14/2016#, 0.000366)
    baseRate(1) = New Penalty(#6/15/2016#, #9/19/2016#, 0.00035)
    baseRate(2) = New Penalty(#9/20/2016#, #12/14/2016#, 0.000333)
    'получаем результат
    Dim Pn As Double = getPn(pBase, pBeginning, pStop, baseRate)
    MsgBox("Итого: " & Pn.ToString)
End Sub
Public Function getPn(ByVal pBase As Double, ByVal pB As Date, ByVal pS As Date, ByVal pBRate() As Penalty) As Double
    Dim dd As Date = pB 'первый день расчетного периода
    Dim summary As Double = 0
    Do While dd <= pS
        'определяем к какому интервалу baseRate принадлежит текущая дата dd
        For Each pp As Penalty In pBRate
            If pp.Contains(dd) Then 'накапливаем пени
                summary += pBase * pp.pRate
                Exit For
            End If
        Next
        'переходим к следующей дате
        dd = dd.AddDays(1)
    Loop
    Return summary
End Function
'…
Public Class Penalty
    Public Sub New(ByVal pS As Date, ByVal pE As Date, ByVal pR As Double)
        MyBase.New()
        _pStart = pS
        _pEnd = pE
        _pRate = pR
    End Sub
    Public Property pStart As Date
    Public Property pEnd As Date
    Public Property pRate As Double
    Public Function Contains(ByVal pValue As Date) As Boolean
        Return pValue >= pStart And pValue <= pEnd
    End Function
End Class
PS. На тестирование времени не осталось, хотя все кажется, достаточно прозрачно. Но вы все же проверьте.
1
1 / 1 / 0
Регистрация: 22.04.2014
Сообщений: 70
19.07.2017, 11:28  [ТС]
ovva, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.07.2017, 11:28
Помогаю со студенческими работами здесь

Вычисление даты и подсчет
Нужно узнать общее количество учеников в возрасте 17 лет. Есть 2 StringGrid-а. На 1 хранятся данные (именно даты в формате dd.mm.yyyy) ...

Подсчет времени в зависимости от состояния
Можете подсказать. Я хочу реализовать следующую логику. Есть трех сменный режим. 8.00-16.00 16.00-24.00 24.00-8.00 Вот, в...

Триггер подсчет конечной даты
в одном столбце введена дата -date во втором количество дней -int как вывести в третий конечную дату (первый столбец плюс второй)? ...

Подсчет длины в зависимости от диаметра и материала
Скажу сразу, в экселе не силен( Буду очень признателен за помощь! Есть большая таблица на 10 тысяч объектов. В пример же я скинул очень...

Избавиться от зависимости даты в ячейке
Здравствуйте. уважаемые! подскажите пож, как избавиться от зависимости даты в ячейке. конкретно: ввожу 3-4! мне выдает дату 03.апреля. и...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru