Invalid use me of keyword - VB

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Invalid use me of keyword»

textual
Листинг программы
'**************************************
' Name: Sunset - SunRise
' Description:It returns the time of the sunset or sunrise when you supply the latitude and longtitude
' By: JoelL
'
' Assumes:I didnt have time to clean it. just add a text box command button and date picker
'
'This code is copyrighted and has' limited warranties.Please see [url]http://www.Planet-Source-Code.com/vb...gWId=1'for[/url] details.'**************************************
 
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
'::: :::
'::: These functions calculate sunrise and sunset times for any given:::
'::: latitude and longitude. They may also be used to calculate such:::
'::: things as astronomical twilight, nautical twilight and civil:::
'::: twilight. :::
'::: :::
'::: SPECIAL NOTES: This code is valid for dates from 1901 to 2099, and :::
'::: will not calculate sunrise/set times for latitudes :::
'::: above/below 63/-63 degrees. :::
'::: :::
'::: This code is based on the work of several others, including Jean:::
'::: Meeus, Todd Guillory, Christophe David, Kieth Burnett and Roger W.:::
'::: Sinnott (credit where due!):::
'::: :::
'::: Converted to VBScript and cleaned-up by Mike Shaffer. :::
'::: :::
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Const pi = 3.14159265358979
Public degrees, radians As Variant
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
':::Returns an angle in range of 0 to (2 * pi):::
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Function GetRange(x)
Dim temp1
Dim temp2
temp1 = x / (2 * pi)
temp2 = (2 * pi) * (temp1 - Fix(temp1))
If temp2 < 0 Then
temp2 = (2 * pi) + temp2
End If
GetRange = temp2
End Function
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
':::Returns 24 hour time from decimal time:::
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Function GetMilitaryTime(DecimalTime, GMTOffset)
 
Dim temp1
Dim temp2
' Handle 24-hour time wrap
If DecimalTime + GMTOffset < 0 Then DecimalTime = DecimalTime + 24
If DecimalTime + GMTOffset > 24 Then DecimalTime = DecimalTime - 24
temp1 = Abs(DecimalTime + GMTOffset)
temp2 = Int(temp1)
temp1 = 60 * (temp1 - temp2)
temp1 = Right("0000" & CStr(Int(temp2 * 100 + temp1 + 0.5)), 4)
GetMilitaryTime = Left(temp1, 2) & ":" & Right(temp1, 2)
End Function
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
':::This routine does all the real work:::
':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Function GetSunRiseSet(latitude, ByVal longitude, ZoneRelativeGMT, RiseOrSet, Year, Month, Day)
If Abs(latitude) > 63 Then
GetSunRiseSet = "{invalid latitude}"
Exit Function
End If
y = Year
m = Month
d = Day
' An altitude of -0.833 is generally accepted as the angle of
' the sun at which sunrise/sunset occurs. It is not exactly
' zero because of refraction effects of the earth's atmosphere.
altitude = -0.833
Select Case UCase(RiseOrSet)
Case "S"
RS = -1
Case Else
RS = 1
End Select
Ephem2000Day = 367 * y - 7 * (y + (m + 9) \ 12) \ 4 + 275 * m \ 9 + d - 730531.5
utold = pi
utnew = 0
sinalt = CDbl(Sin(altitude * radians))' solar altitude
sinphi = CDbl(Sin(latitude * radians))' viewer's latitude
cosphi = CDbl(Cos(latitude * radians))'
longitude = CDbl(longitude * radians) ' viewer's longitude
Err.Clear
On Error Resume Next
Do While (Abs(utold - utnew) > 0.001) And (ct < 35)
ct = ct + 1
utold = utnew
days = Ephem2000Day + utold / (2 * pi)
t = days / 36525
' These 'magic' numbers are orbital elements of the sun, and should not be changed
L = GetRange(4.8949504201433 + 628.331969753199 * t)
G = GetRange(6.2400408 + 628.3019501 * t)
ec = 0.033423 * Sin(G) + 0.00034907 * Sin(2# * G)
lambda = L + ec
E = -1 * ec + 0.0430398 * Sin(2# * lambda) - 0.00092502 * Sin(4# * lambda)
obl = 0.409093 - 0.0002269 * t
' Obtain ASIN of (SIN(obl) * SIN(lambda))
delta = Sin(obl) * Sin(lambda)
delta = Atn(delta / (Sqr(1 - delta * delta)))
GHA = utold - pi + E
cosc = (sinalt - sinphi * Sin(delta)) / (cosphi * Cos(delta))
Select Case cosc
Case cosc > 1
correction = 0
Case cosc < -1
correction = pi
Case Else
correction = Atn((Sqr(1 - cosc * cosc)) / cosc)
End Select
utnew = GetRange(utold - (GHA + longitude + RS * correction))
Loop
If Err = 0 Then
GetSunRiseSet = GetMilitaryTime(utnew * degrees / 15, ZoneRelativeGMT)
Else
GetSunRiseSet = "{err}"
End If
End Function
Private Sub Command1_Click()
If IsDate(MyMaskDate) = False Then Exit Sub
y = Year(MyMaskDate)
m = Month(MyMaskDate)
d = Day(MyMaskDate)
If IsNumeric(Text1.Text) = True Then
' Set these to the latitude/longitude of the observer
Set dbs = OpenDatabase(App.Path & "/Zipcodes.Mdb")
Set rst = dbs.OpenRecordset("Select * From Zip Where Zip_Code = '" & Text1.Text & "'")
If rst.RecordCount > 0 Then
MyLatitude = rst!latitude
MyLongitude = rst!longitude
End If
End If
If MyLatitude = "" Then 'This is the setting for brooklyn NY
MyLatitude = 40.633157
MyLongitude = -73.996953
End If
' Set this to your offset from GMT (e.g. for Dallas is -6)
' NOTE: The routine does NOT handle switches to/from daylight savings
'time, so beware!
MyTimeZone = -5
' Note:Set RiseOrSet to "R" for sunrise, "S" for sunset
RiseOrSet = "R"
Rise = GetSunRiseSet(MyLatitude, MyLongitude, MyTimeZone, _
RiseOrSet, y, m, d)
SSEt = GetSunRiseSet(MyLatitude, MyLongitude, MyTimeZone, _
"s", y, m, d)
Label1.Caption = Format(Rise, "H:nn AMPM") & vbNewLine & Format(SSEt, "H:nn AMPM")
End Sub
Private Sub Form_Load()
degrees = 180 / pi
radians = pi / 180
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5