Option Strict On Imports System.Data Imports System.Data.SqlClient Imports System.Globalization Partial Class horoscopo Inherits System.Web.UI.Page Public horoscopo, comohoy, ff As String Private dreader As SqlDataReader Private hoy As Date = Now Private fechahoy, f1, f2 As String Private sitio As String = System.Configuration.ConfigurationManager.AppSettings("sitio") Private cultura As New CultureInfo("es-ES", True) Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim d_fecha As Date d_fecha = Date.Now '' noticias.UltimaFecha(30, Date.Now.ToString("yyyyMMdd")) '' 30 es horóscopo '' If d_fecha.ToString("MMdd") = "1225" Or d_fecha.ToString("MMdd") = "0101" Or d_fecha.ToString("MMdd") = "0501" Then ' días feriados d_fecha = d_fecha.AddDays(-1) 'día anterior End If ''!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ff = d_fecha.ToString("D", cultura) ff = ff.Substring(0, ff.IndexOf(",")) ff = ff + " | " + d_fecha.ToString("dd.MM.yyyy") horoscopo = "" fechahoy = d_fecha.ToString("MMdd") Dim id As Integer = 0 If fechahoy < "0121" Or fechahoy > "1221" Then ''determino el id correspondiente al signo actual" Then id = 9 ''con el cambio de año se hace lío así que lo fijo Else dreader = func.ver_signo(fechahoy) If dreader.Read Then id = CInt(dreader.Item("id")) ''determino el id correspondiente al signo actual End If dreader.Close() End If '' '' el año es par o impar ? Dim paridad As Integer = CInt(Date.Now.ToString("yyyy")) Mod 2 '' para aprovechar los 2 años de datos que tenemos Dim diferencia As Integer If paridad > 0 Then '' es impar diferencia = 2007 - CInt(Date.Now.ToString("yyyy")) Else '' es año par diferencia = 2008 - CInt(Date.Now.ToString("yyyy")) End If '' esto tiene en cuenta que hay "horóscopo" desde el 27/03/2007 hasta 10/11/2009 f1 = d_fecha.AddYears(diferencia).AddMonths(3).ToString("yyyyMMdd") f2 = d_fecha.AddYears(diferencia).AddMonths(3).AddDays(1).ToString("yyyyMMdd") dreader = func.lee_horos(f1, f2) Dim hor(), Horos As String Horos = "" If dreader.Read Then Horos = CStr(dreader.Item("texto")) '' lee el archivo en BD correspondiente a hoy End If dreader.Close() Horos = Horos.Replace(" ", "\") ''Horos = Horos.Replace(Chr(10) + Chr(10), "\") hor = Horos.Split(CChar("\")) ''divide el archivo horos Dim signos(11), textos(11), signosresumido(11) As String Dim i As Integer = 0 Dim largo As Integer = hor.Length comohoy = func.ConvertUTF(hor(largo - 1)) While CBool(i <= largo - 3) If CBool(i / 2 <> id) Then dreader = func.lee_signos(CInt(i / 2)) If dreader.Read Then textos(CInt(i / 2)) = hor(i + 1) signos(CInt(i / 2)) = dreader.Item("nombre").ToString + " (" + dreader.Item("texto").ToString + ")" signosresumido(CInt(i / 2)) = dreader.Item("nombre").ToString horoscopo += "
" + signos(CInt(i / 2)) + "
" _ + "
" _ + "" _ + textos(CInt(i / 2)) + "
" End If dreader.Close() End If i += 2 End While i = 2 * id '' corrección dreader = func.lee_signos(CInt(i / 2)) If dreader.Read Then textos(CInt(i / 2)) = hor(i + 1) signos(CInt(i / 2)) = dreader.Item("nombre").ToString + " (" + dreader.Item("texto").ToString + ")" signosresumido(CInt(i / 2)) = dreader.Item("nombre").ToString horoscopo = "
" + signos(CInt(i / 2)) + "
" _ + "
" _ + "" _ + textos(CInt(i / 2)) + "
" + horoscopo End If dreader.Close() horoscopo = func.ConvertUTF(horoscopo) End Sub End Class