Другие языки программирования и технологии
Помогите сделать задачу VBA
Рассчитать, в какой день недели вы родились? или Расчитать сколько времени прошло с момента вашего поступления в академию
Sub MacrosBirthDay()
'Рассчитать, в какой день недели вы родились
Dim BirthDay, BirthMonth, BirthYear
Dim JD, R
metka:
ans = InputBox("Введите день вашего рождения по образцу - dd. mm. yyyy :")
If Len(ans) = 0 Then GoTo metka
BirthDay = Val(Left(ans, 2))
BirthMonth = Val(Mid(ans, 4, 2))
BirthYear = Val(Right(ans, 4))
JD = JulianDay(BirthDay, BirthMonth, BirthYear)
R = (JD + 1.5) Mod 7
Select Case R
Case 0
R = "о воскресенье"
Case 1
R = " понедельник"
Case 2
R = " вторник"
Case 3
R = "а среда"
Case 4
R = " четверг"
Case 5
R = "а пятница"
Case 6
R = "а суббота"
End Select
MsgBox "Вы родились " + ans + " это был" + R
End Sub
Sub MacrosVremyaPostupleniya()
'Расчитать сколько времени прошло с момента вашего поступления в академию
Dim PostDay, PostMonth, PostYear
Dim JD, JD2, CurDate, R
metka:
ans = InputBox("Введите день вашего поступления в академию по образцу - dd. mm. yyyy :")
If Len(ans) = 0 Then GoTo metka
PostDay = Val(Left(ans, 2))
PostMonth = Val(Mid(ans, 4, 2))
PostYear = Val(Right(ans, 4))
JD = JulianDay(PostDay, PostMonth, PostYear)
CurDate = CStr(Date)
D = Val(Left(CurDate, 2))
M = Val(Mid(CurDate, 4, 2))
Y = Val(Right(CurDate, 4))
JD2 = JulianDay(D, M, Y)
R = JD2 - JD
MsgBox "Со времени вашего поступления в академию (" + ans + ") по сегодняшнюю дату (" + CurDate + ") прошло " + CStr(R) + " дней. "
End Sub
Function JulianDay(D, M, Y)
If M = 1 Or M = 2 Then
Y = Y - 1
M = M + 12
End If
A = Int(Y / 100)
B = 2 - A + Int(A / 4)
JulianDay = Int(365.25 * (Y + 4716)) + Int(30.6001 * (M + 1)) + D + B - 1524.5
End Function
'Рассчитать, в какой день недели вы родились
Dim BirthDay, BirthMonth, BirthYear
Dim JD, R
metka:
ans = InputBox("Введите день вашего рождения по образцу - dd. mm. yyyy :")
If Len(ans) = 0 Then GoTo metka
BirthDay = Val(Left(ans, 2))
BirthMonth = Val(Mid(ans, 4, 2))
BirthYear = Val(Right(ans, 4))
JD = JulianDay(BirthDay, BirthMonth, BirthYear)
R = (JD + 1.5) Mod 7
Select Case R
Case 0
R = "о воскресенье"
Case 1
R = " понедельник"
Case 2
R = " вторник"
Case 3
R = "а среда"
Case 4
R = " четверг"
Case 5
R = "а пятница"
Case 6
R = "а суббота"
End Select
MsgBox "Вы родились " + ans + " это был" + R
End Sub
Sub MacrosVremyaPostupleniya()
'Расчитать сколько времени прошло с момента вашего поступления в академию
Dim PostDay, PostMonth, PostYear
Dim JD, JD2, CurDate, R
metka:
ans = InputBox("Введите день вашего поступления в академию по образцу - dd. mm. yyyy :")
If Len(ans) = 0 Then GoTo metka
PostDay = Val(Left(ans, 2))
PostMonth = Val(Mid(ans, 4, 2))
PostYear = Val(Right(ans, 4))
JD = JulianDay(PostDay, PostMonth, PostYear)
CurDate = CStr(Date)
D = Val(Left(CurDate, 2))
M = Val(Mid(CurDate, 4, 2))
Y = Val(Right(CurDate, 4))
JD2 = JulianDay(D, M, Y)
R = JD2 - JD
MsgBox "Со времени вашего поступления в академию (" + ans + ") по сегодняшнюю дату (" + CurDate + ") прошло " + CStr(R) + " дней. "
End Sub
Function JulianDay(D, M, Y)
If M = 1 Or M = 2 Then
Y = Y - 1
M = M + 12
End If
A = Int(Y / 100)
B = 2 - A + Int(A / 4)
JulianDay = Int(365.25 * (Y + 4716)) + Int(30.6001 * (M + 1)) + D + B - 1524.5
End Function
для этого VBA не надо, отними одну дату от другой
Функция Weekday() Вам в помощь.
Weekday(Date,[FirstDayOfWeek])
Функция используется для получения номера дня (между 1 и 7) из указанной даты
Возвращаемое значение: Возвращает значение типа Variant(Integer), содержащее целое число (между 1 и 7), представляющее день недели
Параметры: Функция содержит именованные аргументы
Date - Обязательный. Значение типа Variant, числовое выражение, строковое выражение или любая комбинация, позволяющая отобразить дату. Допустимый диапазоно дат-01.01.0000 до 31.12.9999. Если аргумент содержит зарезервированное слово Null, то функцией возвращает Null
Firstdayofweek - Необязательный. Константа, указывающая первый день недели. Если этот аргумент опущен, считается, что неделя начинается с воскресенья. Ниже перечислены допустимые значения аргумента FirstDayOfWeek:
* vbUseSystem = 0 - Используется значение NLS API
* vbSunday = 1 - Воскресенье (по умолчанию)
* vbMonday = 2 - Понедельник
* vbTuesday =3 - Вторник
* vbWednesday =4 - Среда
* vbThursday =5 - Четверг
* vbFriday =6 - Пятница
* vbSaturday =7 - Суббота
Возвращаемые значения Ниже перечислены значения, возвращаемые функцией Weekday:
* vbSunday =1 - Воскресенье
* vbMonday =2 - Понедельник
* vbTuesday =3 - Вторник
* vbWednesday =4 - Среда
* vbThursday =5 - Четверг
* vbFriday =6 - Пятница
* vbSaturday =7 - Суббота
Пример:
' Используем функцию для
' определения дня недели, соответствующего
' указанной дате
Dim MyDate
MyDate = "Июль 27, 1966" ' Присваиваем дату
Print Weekday(MyDate,vbMonday) ' возвращается 3, поскольку
' MyDate соответствует среде
Так же можно воспользоваться функцией DatePart().
DatePart() — очень важная функция, которая возвращает указанную Вами часть даты (например, только год, только месяц или только день недели) .
Удачи!
Weekday(Date,[FirstDayOfWeek])
Функция используется для получения номера дня (между 1 и 7) из указанной даты
Возвращаемое значение: Возвращает значение типа Variant(Integer), содержащее целое число (между 1 и 7), представляющее день недели
Параметры: Функция содержит именованные аргументы
Date - Обязательный. Значение типа Variant, числовое выражение, строковое выражение или любая комбинация, позволяющая отобразить дату. Допустимый диапазоно дат-01.01.0000 до 31.12.9999. Если аргумент содержит зарезервированное слово Null, то функцией возвращает Null
Firstdayofweek - Необязательный. Константа, указывающая первый день недели. Если этот аргумент опущен, считается, что неделя начинается с воскресенья. Ниже перечислены допустимые значения аргумента FirstDayOfWeek:
* vbUseSystem = 0 - Используется значение NLS API
* vbSunday = 1 - Воскресенье (по умолчанию)
* vbMonday = 2 - Понедельник
* vbTuesday =3 - Вторник
* vbWednesday =4 - Среда
* vbThursday =5 - Четверг
* vbFriday =6 - Пятница
* vbSaturday =7 - Суббота
Возвращаемые значения Ниже перечислены значения, возвращаемые функцией Weekday:
* vbSunday =1 - Воскресенье
* vbMonday =2 - Понедельник
* vbTuesday =3 - Вторник
* vbWednesday =4 - Среда
* vbThursday =5 - Четверг
* vbFriday =6 - Пятница
* vbSaturday =7 - Суббота
Пример:
' Используем функцию для
' определения дня недели, соответствующего
' указанной дате
Dim MyDate
MyDate = "Июль 27, 1966" ' Присваиваем дату
Print Weekday(MyDate,vbMonday) ' возвращается 3, поскольку
' MyDate соответствует среде
Так же можно воспользоваться функцией DatePart().
DatePart() — очень важная функция, которая возвращает указанную Вами часть даты (например, только год, только месяц или только день недели) .
Удачи!
Похожие вопросы
- Помогите сделать задачу по Web-програмированию, пополню счет на моб. за это!!!!
- Помогите сделать задачу по информатике (Pascal)
- Помогите сделать задачу на C++.
- Помогите сделать задачу на паскале.
- Помогите сделать задачу в Паскале
- помогите сделать задачу по Pascal Указать минимальный нечетный элемент в последовательности, содержащей целые числа.
- Help!!! Помогите решить задачу по VBA MS Excel!
- Помогите составить задачу на языке VBA
- Язык VBA помогите составить задачу!
- Задача VBA, помогите решить.