Asp İle Diyanetin Sitesinden Namaz Vakitlerini Alma

29 September 2011 - 04:24


Aşağıda yazılan kodlar Ankara içindir.

<%
xmlFile = "/includes/namazVakitleri.xml"
isXmlFileExist = False

isXmlFileExist = fsCommon.FileExists(Server.MapPath(xmlFile))

If isXmlFileExist Then
	If IsXmlFileUTD Then
		Call GetTodaysPrayTimes
	Else
		Call CreateXmlFile
		Call GetTodaysPrayTimes
	End If
Else
	Call CreateXmlFile
	Call GetTodaysPrayTimes
End If


Function IsXmlFileUTD
	IsXmlFileUTD = False
	'is xml file up-to-date, içerisinde bugünün tarihi war mı?
	Set xmlDocument = Server.CreateObject("Microsoft.XMLDOM")
	xmlDocument.async = False
	xmlDocument.load(Server.MapPath(xmlFile))

	xPath = "//vakit"
	Set vakitler = xmlDocument.selectNodes(xPath)
	For Each vakit In vakitler
		vakitTarih = vakit.selectSingleNode("tarih").text

		If CDate(vakitTarih) = Date() Then
			IsXmlFileUTD = True
		End If
	Next
End Function


Function GetTodaysPrayTimes
	Set xmlDocument = Server.CreateObject("Microsoft.XMLDOM")
	xmlDocument.async = False
	xmlDocument.load(Server.MapPath(xmlFile))

	xPath = "//vakit"
	Set vakitler = xmlDocument.selectNodes(xPath)
	For Each vakit In vakitler
		vakitTarih = vakit.selectSingleNode("tarih").text
		If CDate(vakitTarih) = Date() Then
			imsak = vakit.selectSingleNode("imsak").text
			gunes = vakit.selectSingleNode("gunes").text
			ogle = vakit.selectSingleNode("ogle").text
			ikindi = vakit.selectSingleNode("ikindi").text
			aksam = vakit.selectSingleNode("aksam").text
			yatsi = vakit.selectSingleNode("yatsi").text
			Exit For
		End If
	Next

%>
<p>İmsak : <% = imsak %><br />Güneş : <% = gunes %><br />Öğle : <% = ogle %><br />İkindi : <% = ikindi %><br />Akşam : <% = aksam %><br />Yatsı : <% = yatsi %></p>
<%
End Function


Function CreateXmlFile
	'Diyanetin sayfasına bağlanıp Vakitleri bir array içerisinde toplayıp xml içerisine yazıyoruz
	Set xmlObj = CreateObject("MSXML2.ServerXMLHTTP") 
	xmlObj.Open "POST", "http://www.diyanet.gov.tr/turkish/namazvakti/vakithes_namazsonuc.asp", False
	'xmlObj.Open "POST", "http://www.diyanet.gov.tr/turkish/namazvakti/vakithes_namazsonuc.asp", False
	xmlObj.setRequestHeader "Content-type", "text/html; application/x-www-form-urlencoded"
	xmlObj.Send "sehirler=ANKARA&R1=AYLIK&buton=Hesapla&ulk=TURKIYE"
	strDiyanet = xmlObj.responseText
	Set xmlObj = Nothing


	searchStrStart = "<td width=""51"" style=""border-style:solid; border-width:1px; padding-top: 0; font-weight:bold"" align=""center"">"
	searchStrEnd = " </td>"
	startPosition = 1
	vakitlerArray = null

	Do Until InStr(startPosition, strDiyanet, searchStrStart, 1) = 0

		positionOfSearchStrStart = InStr(startPosition, strDiyanet, searchStrStart, 1)

		For i = 0 To 20
			result = Mid(strDiyanet, positionOfSearchStrStart + Len(searchStrStart) + i, Len(searchStrEnd))

			If result = searchStrEnd Then
				positionOfSearchStrEnd = positionOfSearchStrStart + Len(searchStrStart) + i
				Exit For
			End If
		Next

		vakitlerArray = vakitlerArray & Mid(strDiyanet, positionOfSearchStrStart + Len(searchStrStart), positionOfSearchStrEnd - positionOfSearchStrStart - Len(searchStrStart)) & "|"
		startPosition = positionOfSearchStrEnd + Len(searchStrEnd)
	Loop

	vakitlerArray = Left(vakitlerArray, Len(vakitlerArray) - 1)
	vakitlerArray = Replace(vakitlerArray, " ", ":", 1, -1, 1)

	'Array içerisindeki verileri Xml dosyası içerisine yazıyoruz
	aryVakitler = Split(vakitlerArray, "|")

	Set objXML = Server.CreateObject("Microsoft.XMLDOM")

	Set objXML.documentElement = objXML.createElement("namazvakti")

	i = 0

	Do While i + 6 <= UBound(aryVakitler)
		Set objNews = objXML.createElement("vakit")

		objNews.appendChild objXML.createElement("tarih")
		objNews.appendChild objXML.createElement("imsak")
		objNews.appendChild objXML.createElement("gunes")
		objNews.appendChild objXML.createElement("ogle")
		objNews.appendChild objXML.createElement("ikindi")
		objNews.appendChild objXML.createElement("aksam")
		objNews.appendChild objXML.createElement("yatsi")

		objNews.childNodes(0).text = aryVakitler(i)
		objNews.childNodes(1).text = aryVakitler(i + 1)
		objNews.childNodes(2).text = aryVakitler(i + 2)
		objNews.childNodes(3).text = aryVakitler(i + 3)
		objNews.childNodes(4).text = aryVakitler(i + 4)
		objNews.childNodes(5).text = aryVakitler(i + 5)
		objNews.childNodes(6).text = aryVakitler(i + 6)

		objXML.documentElement.appendChild objNews.cloneNode(true)

		i = i + 8
	Loop
	
	objXML.Save Server.MapPath(xmlFile)
End Function
%>



Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading