Autor
|
Tema: ARREGLOS VISUAL.NET (Leído 3,005 veces)
|
rochro
Desconectado
Mensajes: 42
|
Hola, soy nueva con lo que es el desarrollo pero estoy intentando en que me salga un simulador de semana gps (referencia: http://gps.geo.upm.es/www/calactal.htm) donde al colocar el día (del 1 al 365) me bote como resultado la semana gps que le corresponde: ejem: 034 corresponde a 1778. El código que generé y el cual no me funciona, es el siguiente: Dim semanagps As Integer Dim i As Integer = textbox1.text Dim numdia(i) As Integer numdia(0) = Nothing numdia(1) = 1773 'si nos fijamos en el calendario la semana 1773 numdia(2) = 1773 'tiene del día 1 al 4 y las demás semanas tendrán numdia(3) = 1773 'los siete días que comprende la semana, es por numdia(4) = 1773 'ello que genero el for. For i = 5 To 365 Step 1 For k = 1773 To 1825 Step 1 For j = 1 To 7 Step 1 numdia(i) = k + 1 Next Next Next semanagps = numdia(i)
De repente mi lógica esta mal, quisiera que me apoyen por favor. Gracias de antemano.
|
|
|
En línea
|
|
|
|
engel lex
|
esto entiendo en tu codigo por cada i hasta 365 por cada k en el rango por cada j numdia en la posicion i es igual a k +1 así que numdia(5) = 1826 numdia(6) = 1826
... ergo hasta el final... observa con detalle... i te apunta a la posicion de el array... k genera un numero... j repite 7 veces la operación por cada k asignando el mismo valor de k+1 en el mismo i creo que es mejor que hagas 2 for... k = 1773
para i desde 5 hasta 365, step 7 (para ir de 7 en 7) k = k+1 para j desde 0 a 6 numdia(i+j) es igual k
i te mueve semana a semana... j te mueve entre los días de la semana... como el numero (1773) solo cambia una vez por semana k se suma 1 en el ciclo exterior y j rellena el interior con este valor... (sorry por lo de las etiquetas lo daba por pseudo-psuedo-codigo ya que era solo una explicación XD pero lo tendré en cuenta)
|
|
« Última modificación: 28 Junio 2014, 02:57 am por engel lex »
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
Reacuerdo haber solucionado un tema parecido para VisualBasicScript, quizás te sirva de algo: http://foro.elhacker.net/scripting/batch_obtener_nombre_con_extension-t410321.0.html;msg1926804#msg1926804Tu metodología no me parece la mas idonea, más si estás empezando, ya que tanto For anidado y además especificando pasos solo puede acabar liandote, te muestro otro enfoque más liviano que he ideado: ' Creo un Array para almacenar como referencia el rango de semanas GPS. ' Al valor inicial hay que descontarle un '1' (1772) porque el índice de un array empieza por '0'. Private ReadOnly GPSWeeks As Integer() = Enumerable.Range(1773 - 1, 1825).ToArray ' Obtengo la cantidad de dias del año actual. ' Esto lo hago por los años bisiestos, que tienen '1' día más (366). Private ReadOnly TotalDaysInYear As Integer = (From month As Integer In Enumerable.Range(1, 12) Select DateTime.DaysInMonth(Now.Year, month)).Sum ' Ya estamos listos para iterar los elementos ...del modo que uno prefiera :), esto solo es un ejemplo: Private Sub Test() Handles MyBase.Shown Dim sb As New System.Text.StringBuilder For DayOfYear As Integer = 1 To TotalDaysInYear ' (365 or 366) ' Obtengo la fecha exacta dado el número del día del año actual. Dim DateOfYear As DateTime = New DateTime(Now.Year, 1, 1).AddDays(DayOfYear - 1) sb.AppendLine(String.Format("Day Of Year: {0}", CStr(DayOfYear))) sb.AppendLine(String.Format("Date: {0}", CStr(DateOfYear))) sb.AppendLine(String.Format("GPS Week: {0}", CStr(Me.GPSWeeks(DatePart(DateInterval.WeekOfYear, DateOfYear))))) MessageBox.Show(sb.ToString, "GPS Calendar Info - By Elektro", MessageBoxButtons.OK, MessageBoxIcon.Information) sb.Clear() Next DayOfYear End Sub
@ engel lexPorfavor, ya que tienes el detalle de llevar las normas del foro en tu firma, la próxima vez podrías intentar respetar la utilización de las etiquetas GeShi, no es un muy buen ejemplo ...
|
|
« Última modificación: 28 Junio 2014, 03:03 am por Eleкtro »
|
En línea
|
|
|
|
rochro
Desconectado
Mensajes: 42
|
Está muy bien, ahora trato de adecuar tu codigo a mi aplicacion, ya que el día lo tendria que ingresar en un text ejem: 52 y que me de como resultado la semana ejem: del dia 52 la semana gps es 1780. Gracias elektro =)
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
es muy facil de adaptar, incluso puedes crear una función de uso genérico para devolver todos los datos necesarios (dias, semanas gps) en un objeto, ejemplo: Public Class GPSTest : Inherits Form ' TKey = Day of year ' TValue = GPS Week Friend ReadOnly GPSDictionary As Dictionary(Of Integer, Integer) = Me. GetGPSDictionary Private Function GetGPSDictionary () As Dictionary(Of Integer, Integer) Dim ThisYear As Integer = Now.Year Dim DaysInThisYear As Integer = (From month As Integer In Enumerable.Range(1, 12) Select DateTime.DaysInMonth(ThisYear, month)).Sum Dim GPSWeeks As IEnumerable(Of Integer) = Enumerable.Range(1773 - 1, 1825) For Day As Integer = 1 To DaysInThisYear Result.Add(Day, GPSWeeks(DatePart(DateInterval.WeekOfYear, New DateTime(ThisYear, 1, 1).AddDays(Day - 1)))) Next Day Return Result End Function Private Sub Test() Handles MyBase.Load MessageBox.Show(Me.GPSDictionary(CInt(InputBox("Intoduce un dia del año", "Dia del año", 1))), "Semana GPS:", MessageBoxButtons.OK, MessageBoxIcon.Information) Application.Exit() End Sub End Class
Saludos
|
|
« Última modificación: 30 Junio 2014, 20:06 pm por Eleкtro »
|
En línea
|
|
|
|
rochro
Desconectado
Mensajes: 42
|
es muy facil de adaptar, incluso puedes crear una función de uso genérico para devolver todos los datos necesarios (dias, semanas gps) en un objeto, ejemplo:
Elektro, muchas gracias por apoyarme. Está OK
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
con arreglos
Java
|
artang
|
0
|
2,244
|
31 Marzo 2009, 04:54 am
por artang
|
|
|
arreglos en c
Programación C/C++
|
el futuro
|
5
|
3,460
|
21 Mayo 2010, 02:08 am
por @synthesize
|
|
|
Duda:Arreglos en visual Basic 2010 Express - Eliminar, Insertar,Modificar
.NET (C#, VB.NET, ASP)
|
Mioshi
|
2
|
3,410
|
4 Octubre 2012, 05:17 am
por Mioshi
|
|
|
Arreglos
Programación C/C++
|
angel_davidsr
|
3
|
2,425
|
17 Octubre 2012, 19:46 pm
por Puntoinfinito
|
|
|
Arreglos c++
Programación C/C++
|
alfonsopf95
|
2
|
2,101
|
7 Abril 2014, 15:22 pm
por rir3760
|
|