funciones vb.net.doc

49
UNITEK GRUPO IDAT Funciones Matemática Las funciones matemáticas de Visual Basic 6 han sido reemplazadas por métodos equivalentes en la clase System.Math de .NET Framework. Comentarios Los métodos matemáticos de .NET Framework funcionan del mismo modo que sus equivalentes de Visual Basic 6, si bien algunos de sus nombres han sufrido ligeras diferencias. Así, por ejemplo, Atan es el equivalente en .NET Framework de la función Atn de Visual Basic 6. En la siguiente tabla se detallan los nombres de las funciones matemáticas de Visual Basic 6 y sus métodos equivalentes en .NET Framework: Función de Visual Basic 6 Método de Visual Basic .NET Descripción Abs Math.Abs (Método) Devuelve el valor absoluto de un número especificado. Atn Math.Atan (Método) Devuelve un valor Double que contiene el ángulo cuya tangente es el número especificado. Cos Math.Cos (Método) Devuelve un valor Double que contiene el coseno del ángulo especificado. Exp Math.Exp (Método) Devuelve un valor Double que contiene "e" (base de los logaritmos naturales) elevado a la potencia especificada. 1

Upload: vladimir-cotaquispe-gutierrez

Post on 01-Dec-2015

71 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Funciones VB.Net.doc

UNITEK GRUPO IDAT

Funciones Matemática

Las funciones matemáticas de Visual Basic 6 han sido reemplazadas por métodos

equivalentes en la clase System.Math de .NET Framework.

Comentarios

Los métodos matemáticos de .NET Framework funcionan del mismo modo que sus

equivalentes de Visual Basic 6, si bien algunos de sus nombres han sufrido ligeras

diferencias. Así, por ejemplo, Atan es el equivalente en .NET Framework

de la función Atn de Visual Basic 6. En la siguiente tabla se detallan

los nombres de las funciones matemáticas de Visual Basic 6 y sus

métodos equivalentes en .NET Framework:

Función de Visual Basic 6

Método de Visual Basic .NET Descripción

Abs Math.Abs (Método) Devuelve el valor absoluto de un número especificado.

Atn Math.Atan (Método) Devuelve un valor Double que contiene el ángulo cuya tangente es el número especificado.

Cos Math.Cos (Método) Devuelve un valor Double que contiene el coseno del ángulo especificado.

Exp Math.Exp (Método) Devuelve un valor Double que contiene "e" (base de los logaritmos naturales) elevado a la potencia especificada.

Log Math.Log (Método) Devuelve un valor Double que contiene el logaritmo del número especificado. Este método está sobrecargado y puede devolver o bien el logaritmo natural (de base e) del número especificado o

1

Page 2: Funciones VB.Net.doc

UNITEK GRUPO IDAT

bien el logaritmo del número especificado en una base especificada.

Round Math.Round (Método)

Devuelve un valor de tipo Double que contiene el número más próximo al valor especificado. Existen funciones de redondeo adicionales disponibles en forma de métodos de tipos intrínsecos como Decimal.Round (Método).

Sgn Math.Sign (Método) Devuelve un valor Integer que indica el signo de un número.

Sin Math.Sin (Método) Devuelve un valor Double que especifica el seno de un ángulo.

Sqr Math.Sqrt (Método) Devuelve un valor Double que especifica la raíz cuadrada de un número.

Tan Math.Tan (Método) Devuelve un valor Double que contiene la tangente de un ángulo.

Además, la clase matemática de .NET Framework ofrece constantes y otros

métodos estáticos para funciones trigonométricas, logarítmicas y otras funciones

matemáticas habituales. Todo ello puede utilizarse en un programa de Visual

Basic.

Para utilizar estas funciones sin calificación, importe el espacio de nombres

System.Math a su proyecto agregando el siguiente código en la parte superior

del código fuente:

Imports System.Math

Requisitos

2

Page 3: Funciones VB.Net.doc

UNITEK GRUPO IDAT

Class: Math (Clase)

Ejemplo de Abs

En este ejemplo se utiliza el método Abs de la clase Math para calcular el valor

absoluto de un número:

Imports System.Math

' Code will not compile unless placed within a Sub or Function

Dim MyNumber As Double

MyNumber = Abs(50.3) ' Returns 50.3.

MyNumber = Abs(-50.3) ' Returns 50.3.

Ejemplo de Atan

En este ejemplo se utiliza el método Atan de la clase Math para calcular el valor

de pi:

Imports System.Math

' Code will not compile unless placed within a Sub or Function

Dim pi As Double

pi = 4 * Atan(1) ' Calculate the value of pi.

Ejemplo de Cos

En este ejemplo se utiliza el método Cos de la clase Math para devolver el coseno

de un ángulo:

Imports System.Math

' Code will not compile unless placed within a Sub or Function

Dim MyAngle, MySecant As Double

MyAngle = 1.3 ' Define angle in radians.

MySecant = 1 / Cos(MyAngle) ' Calculate secant.

Ejemplo de Exp

En este ejemplo se utiliza el método Exp de la clase Math para devolver e elevado

a una potencia:

Imports System.Math

3

Page 4: Funciones VB.Net.doc

UNITEK GRUPO IDAT' Code will not compile unless placed within a Sub or Function

Dim MyAngle, MyHSin As Double

' Define angle in radians.

MyAngle = 1.3

' Calculate hyperbolic sine.

MyHSin = (Exp(MyAngle) - Exp(-1 * MyAngle)) / 2

Ejemplo de Log

En este ejemplo se utiliza el método Log de la clase Math para devolver el

logaritmo natural de un número:

Imports System.Math

' Code will not compile unless placed within a Sub or Function

Dim MyAngle, MyLog As Double

' Define angle in radians.

MyAngle = 1.3

' Calculate inverse hyperbolic sine.

MyLog = Log(MyAngle + Sqrt(MyAngle * MyAngle + 1))

Ejemplo de Round

En este ejemplo se utiliza el método Round de la clase Math para redondear un

número al entero más próximo:

Imports System.Math

' Code will not compile unless placed within a Sub or Function

Dim MyVar1 As Double = 2.8

Dim MyVar2 As Double

MyVar2 =Round(MyVar1) ' Returns 3.

Ejemplo de Sign

En este ejemplo se utiliza el método Sign de la clase Math para determinar el

signo de un número:

Imports System.Math

' Code will not compile unless placed within a Sub or Function

Dim MyVar1, MyVar2, MyVar3 As Double

4

Page 5: Funciones VB.Net.doc

UNITEK GRUPO IDATDim MySign As Integer

MyVar1 = 12

MyVar2 = -2.4

MyVar3 = 0

MySign = Sign(MyVar1) ' Returns 1.

MySign = Sign(MyVar2) ' Returns -1.

MySign = Sign(MyVar3) ' Returns 0.

Ejemplo de Sin

En este ejemplo se utiliza el método Sin de la clase Math para devolver el seno de

un ángulo:

Imports System.Math

' Code will not compile unless placed within a Sub or Function

Dim MyAngle, MyCosecant As Double

MyAngle = 1.3 ' Define angle in radians.

MyCosecant = 1 / Sin(MyAngle) ' Calculate cosecant.

Ejemplo de Sqrt

En este ejemplo se utiliza el método Sqrt de la clase Math para calcular la raíz

cuadrada de un número:

Imports System.Math

' Code will not compile unless placed within a Sub or Function

Dim MySqr As Double

MySqr = Sqrt(4) ' Returns 2.

MySqr = Sqrt(23) ' Returns 4.79583152331272.

MySqr = Sqrt(0) ' Returns 0.

MySqr = Sqrt(-4) ' Returns NaN (not a number).

Ejemplo de Tan

En este ejemplo se utiliza el método Tan de la clase Math para devolver la

tangente de un ángulo:

Imports System.Math

' Code will not compile unless placed within a Sub or Function

5

Page 6: Funciones VB.Net.doc

UNITEK GRUPO IDATDim MyAngle, MyCotangent As Double

MyAngle = 1.3 ' Define angle in radians.

MyCotangent = 1 / Tan(MyAngle) ' Calculate cotangent.

Requisitos

Espacio de nombres: System.Math

Ensamblado: mscorlib (en mscorlib.dll)

Vea también

Rnd (Función)

Devuelve un número aleatorio de tipo Single.

Public Shared Function Rnd[(number)] As Single

Parámetro

number Opcional. Cualquier valor Single o expresión Single válida.

Valores devueltos

Si number es Rnd genera

Menor que cero Siempre el mismo número, utilizando number como valor de inicialización.

Mayor que cero El siguiente número aleatorio en la secuencia.

Igual a cero El número generado por última vez.

Omitido El siguiente número aleatorio en la secuencia.

Comentarios

La función Rnd devuelve un valor menor que 1, pero mayor o igual a cero.

6

Page 7: Funciones VB.Net.doc

UNITEK GRUPO IDAT

El valor de number determina la forma en que Rnd genera un número

aleatorio:

Para cualquier valor de inicialización dado, se genera la misma secuencia de

números ya que cada llamada sucesiva que se hace a la función Rnd utiliza el

número anteriormente generado como inicialización para el siguiente número

de la secuencia.

Antes de llamar a la función Rnd, utilice la instrucción Randomize sin

argumento para inicializar el generador de números aleatorios con un valor de

inicialización basado en el temporizador del sistema.

Para producir enteros aleatorios en un intervalo dado, utilice esta fórmula:

CInt(Int((upperbound - lowerbound + 1) * Rnd() + lowerbound))

En este caso, upperbound representa el número mayor del intervalo y

lowerbound, el menor del intervalo.

Nota   Para repetir secuencias de números aleatorios, llame a la función Rnd con un argumento negativo justo antes de utilizar Randomize con un argumento numérico. Si utiliza Randomize con el mismo valor que number, no se repetirá la secuencia anterior.Nota de seguridad   Debido a que la instrucción Random y la función Rnd comienzan con un valor de inicialización y generan números que quedan dentro de un intervalo finito, otra persona que conozca el algoritmo utilizado para generar los resultados puede predecirlos. Por tanto, la instrucción Random y la función Rnd no se deben utilizar para generar números aleatorios utilizados en criptografía.

Ejemplo

En el siguiente ejemplo se utiliza la función Rnd para generar un valor entero

aleatorio entre 1 y 6.

Dim MyValue As Integer

MyValue = CInt(Int((6 * Rnd()) + 1)) ' Generate random value between 1 and 6.

Int, Fix (Funciones)

Devuelven la parte entera de un número.

7

Page 8: Funciones VB.Net.doc

UNITEK GRUPO IDAT

Public Shared Function Int(ByVal number As { Double | Integer | Long | Object | Short | Single | Decimal }) As { Double | Integer | Long | Object | Short | Single | Decimal }

Public Shared Function Fix(ByVal number As { Double | Integer | Long | Object | Short | Single | Decimal }) As { Double | Integer | Long | Object | Short | Single | Decimal }

Parámetro

number Requerido. Un número de tipo Double o cualquier expresión numérica válida. Si number contiene Nothing, se devolverá Nothing.

Excepciones o errores

Tipo de excepción Número de error Condición

ArgumentNullException 5 No se especifica number.

ArgumentException 5 Number no es un tipo numérico.

Comentarios

Las funciones Int y Fix eliminan la parte decimal de number y devuelven el

valor entero resultante.

La diferencia entre Int y Fix está en que si number es negativo, Int devolverá

el primer entero negativo menor o igual que number, mientras que Fix

devolverá el primer entero negativo mayor o igual que number. Por ejemplo,

Int convierte -8,4 en -9 y Fix convierte -8,4 en -8.

Por tanto, Fix(number) equivale a Sign(number) * Int(Abs(number)).

Ejemplo

En el siguiente ejemplo se muestra cómo las funciones Int y Fix devuelven las

partes enteras de distintos números. Con argumentos de número negativos, la

función Int devuelve el primer entero negativo menor o igual que el número;

8

Page 9: Funciones VB.Net.doc

UNITEK GRUPO IDAT

mientras que Fix devuelve el primer entero negativo mayor o igual que el

número. En el ejemplo siguiente, deberá especificar Option Strict Off porque

no se permiten las conversiones implícitas de tipo Double a tipo Integer bajo

Option Strict On:

Option Strict Off

' Code will not function unless placed within a Sub or Function

Dim MyNumber As Integer

MyNumber = Int(99.8) ' Returns 99.

MyNumber = Fix(99.8) ' Returns 99.

MyNumber = Int(-99.8) ' Returns -100.

MyNumber = Fix(-99.8) ' Returns -99.

MyNumber = Int(-99.2) ' Returns -100.

MyNumber = Fix(-99.2) ' Returns -99.

Utilice la función CInt para convertir explícitamente otros tipos de datos a tipo

Integer con Option Strict Off. No obstante, Cint redondea al número entero

más próximo en vez de truncar la parte decimal de los números. Por ejemplo:

MyNumber = CInt(99.8) ' Returns 100.

MyNumber = CInt(-99.8) ' Returns -100.

MyNumber = CInt(-99.2) ' Returns -99.

Utilice la función CInt sobre el resultado de una llamada a Fix o Int para

realizar una conversión explícita a un valor entero sin redondear. Por ejemplo:

MyNumber = CInt(Fix(99.8)) ' Returns 99.

MyNumber = CInt(Int(99.8)) ' Returns 99.

Requisitos

Espacio de nombres: Microsoft.VisualBasic

Módulo: Conversion

9

Page 10: Funciones VB.Net.doc

UNITEK GRUPO IDAT

Ensamblado: Tiempo de ejecución de Microsoft Visual Basic .NET (en

Microsoft.VisualBasic.dll)

Oct (Función)

Devuelve una cadena que representa el valor octal de un número.

Public Shared Function Oct(ByVal Number As { Byte | Short | Integer | Long | Object } ) As String

Parámetro

Number Requerido. Cualquier expresión numérica o de tipo String válida.

Excepciones o errores

Tipo de excepción Número de error Condición

ArgumentNullException 5 Number no se ha especificado.

ArgumentException 5 Number no es un tipo numérico.

Comentarios

Si Number no es ya un número entero, se redondea al número

entero más próximo antes de evaluarse.

Si Number es Oct devuelve

Un valor vacío Cero (0)

Cualquier otro número Hasta 22 caracteres octales

Puede representar números octales directamente anteponiendo &O a los

números en el intervalo correcto. Por ejemplo, &O10 representa el 8 decimal

en notación octal.

10

Page 11: Funciones VB.Net.doc

UNITEK GRUPO IDATEjemplo

En este ejemplo se utiliza la función Oct para devolver el valor octal de un

número.

Dim MyOct As String

MyOct = Oct(4) ' Returns 4.

MyOct = Oct(8) ' Returns 10.

MyOct = Oct(459) ' Returns 713.

Hex (Función)

Devuelve una cadena que representa el valor hexadecimal de un número.

Public Shared Function Hex( _

ByVal Number As { Byte | Short | Integer | Long | Object } _

) As String

Parámetro

Number Requerido. Cualquier expresión numérica o de tipo String válida.

Excepciones o errores

Tipo de excepción Número de error Condición

ArgumentNullException 5 Number no se ha especificado.

ArgumentException 5 Number no es un tipo numérico.

Comentarios

Si Number no es ya un número entero, se redondea al número

entero más próximo antes de evaluarse.

Si Number es Hex devuelve

11

Page 12: Funciones VB.Net.doc

UNITEK GRUPO IDAT

Un valor vacío Cero (0)

Cualquier valor numérico.

Hasta dieciséis caracteres hexadecimales.

Puede representar números hexadecimales directamente si precede los

números del intervalo apropiado con &H. Por ejemplo, &H10 representa el 16

decimal en notación hexadecimal.

Ejemplo

En este ejemplo se utiliza la función Hex para devolver el valor hexadecimal

de un número.

Dim MyHex As String

MyHex = Hex(5) ' Returns 5.

MyHex = Hex(10) ' Returns A.

MyHex = Hex(459) ' Returns 1CB.

IsNumeric (Función)

Devuelve un valor Boolean que indica si una expresión puede evaluarse como un

número.

Public Function IsNumeric(ByVal Expression As Object) As Boolean

Parámetro

Expression Requerido. Expresión Object.

Comentarios

IsNumeric devuelve True si Expression se reconoce globalmente como un

número; si no, devuelve False.

IsNumeric devuelve True si el tipo de datos de Expression es Short,

Integer, Long, Decimal, Single o Short. También devuelve True si

12

Page 13: Funciones VB.Net.doc

UNITEK GRUPO IDAT

Expression es de tipo String y se puede convertir al tipo Double. Devuelve

False si Expression es del tipo Date.

Ejemplo

En este ejemplo se utiliza la función IsNumeric para determinar si el

contenido de una variable puede evaluarse como un número.

Dim MyVar As Object

Dim MyCheck As Boolean

' ...

MyVar = "53" ' Assign value.

MyCheck = IsNumeric(MyVar) ' Returns True.

' ...

MyVar = "459.95" ' Assign value.

MyCheck = IsNumeric(MyVar) ' Returns True.

' ...

MyVar = "45 Help" ' Assign value.

MyCheck = IsNumeric(MyVar) ' Returns False.

IsDate (Función)

Devuelve un valor de tipo Boolean que indica si una expresión puede convertirse

en una fecha.

Public Function IsDate(ByVal Expression As Object) As Boolean

Parámetro

Expression Requerido. Expresión Object.

Comentarios

IsDate devuelve True si la expresión es de tipo Date, o si es una cadena que

se puede convertir al tipo Date; si no, devuelve False.

Ejemplo

13

Page 14: Funciones VB.Net.doc

UNITEK GRUPO IDAT

En este ejemplo se utiliza la función IsDate para determinar si varias

variables se pueden convertir a fechas.

Dim MyDate, YourDate As Date

Dim NoDate As String

Dim MyCheck As Boolean

MyDate = "February 12, 1969"

YourDate = #2/12/1969#

NoDate = "Hello"

MyCheck = IsDate(MyDate) ' Returns True.

MyCheck = IsDate(YourDate) ' Returns True.

MyCheck = IsDate(NoDate) ' Returns False.

IsError (Función)

Devuelve un valor de tipo Boolean que indica si una expresión es un tipo de

excepción.

Public Function IsError(ByVal Expression As Object) As Boolean

Parámetro

Expression Requerido. Expresión Object.

Comentarios

IsError devuelve True si la expresión representa una variable Object que se

deriva de la clase Exception en el espacio de nombres System.

Una excepción que se deriva de System.Exception puede capturarse con las

instrucciones Try...Catch...Finally.

Ejemplo

En este ejemplo se utiliza la función IsError para comprobar si una expresión

representa una excepción del sistema.

Dim ReturnVal As Object

14

Page 15: Funciones VB.Net.doc

UNITEK GRUPO IDATDim BadArg As String ' Name of out-of-range argument.

Dim MyCheck As Boolean

' ...

ReturnVal = New System.ArgumentOutOfRangeException(BadArg)

' ...

MyCheck = IsError(ReturnVal) ' Returns True.

IsNothing (Función)

Devuelve un valor de tipo Boolean que indica si una expresión no tiene ningún

objeto asignado.

Public Function IsNothing(ByVal Expression As Object) As Boolean

Parámetro

Expression Requerido. Expresión Object.

Comentarios

IsNothing devuelve True si la expresión representa una variable de tipo

Object que no tiene actualmente ningún objeto asignado; en caso contrario,

devuelve False.

Ejemplo

En este ejemplo se utiliza la función IsNothing para determinar si una

variable de objeto está asociada a alguna instancia de objeto.

Dim MyVar As Object ' No instance assigned to this variable yet.

Dim MyCheck As Boolean

' ...

MyCheck = IsNothing(MyVar) ' Returns True.

' ...

MyVar = "ABCDEF" ' Assign a string instance to the variable.

MyCheck = IsNothing(MyVar) ' Returns False.

' ...

MyVar = Nothing ' Disassociate the variable from any instance.

15

Page 16: Funciones VB.Net.doc

UNITEK GRUPO IDATMyCheck = IsNothing(MyVar) ' Returns True.

Funciones de Cadena

LCase (Función)

Devuelve una cadena o un carácter convertidos en minúscula.

Public Shared Function LCase(ByVal Value As Char) As Char

O bien

Public Shared Function LCase(ByVal Value As String) As String

Parámetro

Value Requerido. Cualquier expresión String o Char válida.

Comentarios

Sólo las letras mayúsculas se convierten a minúsculas; todas las letras

minúsculas y los caracteres no alfabéticos permanecerán inalterados.

Ejemplo

En el siguiente ejemplo se utiliza la función LCase para devolver la versión de

una cadena en minúscula:

Dim UpperCase, LowerCase As String

Uppercase = "Hello World 1234" ' String to convert.

Lowercase = LCase(UpperCase) ' Returns "hello world 1234".

UCase (Función)

Devuelve una cadena o un carácter que contiene la cadena especificada

convertida en mayúsculas.

Public Shared Function UCase(ByVal Value As Char) As Char

16

Page 17: Funciones VB.Net.doc

UNITEK GRUPO IDAT

O bien

Public Shared Function UCase(ByVal Value As String) As String

Parámetro

Value Requerido. Cualquier expresión String o Char válida.

Comentarios

Sólo las letras minúsculas se convierten en mayúsculas; todas la letras

mayúsculas y caracteres sin letra permanecen inalterados.

Ejemplo

En este ejemplo se utiliza la función UCase para devolver la versión en

mayúsculas de una cadena.

Dim LowerCase, UpperCase As String

LowerCase = "Hello World 1234" ' String to convert.

UpperCase = UCase(LowerCase) ' Returns "HELLO WORLD 1234".

Len (Función)

Devuelve un entero que contiene el número de caracteres de una cadena o bien el

número de bytes necesarios para almacenar una variable.

Public Shared Function Len(ByVal Expression As { Boolean | Byte | Char | Double | Integer | Long | Object | Short | Single | String | DateTime | Decimal } ) As Integer

Parámetros

Expression Cualquier expresión String o nombre de variable válidos. Si Expression es de tipo Object, la función Len devuelve el tamaño tal como se escribirá en el archivo.

Comentarios

17

Page 18: Funciones VB.Net.doc

UNITEK GRUPO IDAT

En el caso de tipos definidos por el usuario y variables Object, la función Len

devuelve el tamaño tal como se escribirá en el archivo. Si Object contiene

una expresión String, devolverá la longitud de la cadena. Si Object contiene

otro tipo, devolverá el tamaño del objeto tal como se escribirá en el archivo.

Nota   Puede ocurrir que la función Len no alcance a determinar el número real de bytes de almacenamiento necesarios cuando se use con cadenas de longitud variable en tipos de datos definidos por el usuario.Nota   La función LenB de versiones anteriores de Visual Basic devuelve el número de bytes, en lugar de caracteres. Se utiliza principalmente para convertir cadenas en aplicaciones de juegos de caracteres de doble byte (DBCS). En Visual Basic .NET, todas las cadenas están en Unicode y ya no se admite LenB.

Ejemplo

En este ejemplo se utiliza Len para devolver el número de caracteres de una

cadena:

Dim MyString As String

Dim MyLen As Integer

MyString = "Hello World" ' Initializes variable.

MyLen = Len(MyString) ' Returns 11.

Notas de programadores de Smart Device

La función Len sólo acepta como parámetros las variables String y Object. Si

Object contiene una expresión String, devolverá la longitud de String. Si un

parámetro es una referencia a un objeto NULL, la función devolverá cero. Si un

objeto contiene algún otro tipo, se iniciará una excepción.

Mid (Función)

Devuelve una cadena que a su vez contiene un número especificado de caracteres

de una cadena.

Public Shared Function Mid(ByVal Str As String, ByVal Start As Integer, Optional ByVal Length As Integer ) As String

Parámetros

18

Page 19: Funciones VB.Net.doc

UNITEK GRUPO IDATStr

Requerido. Expresión String de la que se devuelven caracteres.

Start Requerido. Expresión Integer. Posición de carácter de Str donde comienza la parte que se va a utilizar. Si Start es mayor que el número de caracteres de Str, la función Mid devuelve una cadena de longitud cero (""). Start es de base uno.

Length Opcional. Expresión Integer. Número de caracteres que se va a devolver. Si se omite o si existen menos caracteres del número especificado por Length en el texto (incluido el carácter en la posición Start), se devuelven todos los caracteres desde la posición de inicio hasta el final de la cadena.

Excepciones o errores

Tipo de excepción Número de error Condición

ArgumentException 5 Start <= 0 o Length < 0.

Comentarios

Para determinar el número de caracteres de Str, utilice la función

Len.

Nota   La función MidB de versiones anteriores de Visual Basic devuelve una cadena en bytes, en lugar de caracteres. Se utiliza principalmente para convertir cadenas en aplicaciones de juegos de caracteres de doble byte (DBCS). En Visual Basic .NET, todas las cadenas están en Unicode y ya no se admite MidB.

Ejemplo

En este ejemplo se utiliza la función Mid para devolver un número de

caracteres especificado de una cadena.

Dim MyString, FirstWord, LastWord, MidWords As String

MyString = "Mid Function Demo" ' Creates text string.

FirstWord = Mid(MyString, 1, 3) ' Returns "Mid".

LastWord = Mid(MyString, 14, 4) ' Returns "Demo".

MidWords = Mid(MyString, 5) ' Returns "Function Demo".

StrConv (Función)

Devuelve una cadena convertida según se ha especificado.

19

Page 20: Funciones VB.Net.doc

UNITEK GRUPO IDAT

Public Shared Function StrConv(ByVal Str As String,ByVal Conversion As Microsoft.VisualBasic.VbStrConv,Optional ByVal LocaleID As Integer, ) As String

Parámetros

Str Requerido. Expresión String que se va a convertir.

Conversion Requerido. Miembro de Microsoft.VisualBasic.VbStrConv. Valor de enumeración que especifica el tipo de conversión que realizar.

LocaleID Opcional. Valor de LocaleID, cuando sea diferente del que figure en el valor LocaleID del sistema. (El valor de LocaleID del sistema es el valor predeterminado.)

Configuración

Los valores del argumento Conversion son:

Miembro de la enumeración Descripción

VbStrConv.None No se realiza ninguna conversión

VbStrConv.LinguisticCasing Usa mayúsculas o minúsculas con arreglo a criterios

lingüísticos, más que los del sistema de archivos

(predeterminado). Válido sólo con UpperCase y LowerCase.

VbStrConv.UpperCase Convierte la cadena a mayúsculas.

VbStrConv.LowerCase Convierte la cadena a minúsculas.

VbStrConv.ProperCase Pone en mayúscula la primera letra de cada palabra de la

cadena.

VbStrConv.Wide* Convierte los caracteres estrechos (ancho medio) de la cadena

en caracteres anchos (ancho completo).

VbStrConv.Narrow* Convierte los caracteres anchos (ancho completo) de la cadena

20

Page 21: Funciones VB.Net.doc

UNITEK GRUPO IDAT

en caracteres estrechos (ancho medio).

VbStrConv.Katakana** Convierte los caracteres Hiragana de la cadena en caracteres

Katakana.

VbStrConv.Hiragana** Convierte los caracteres Katakana de la cadena en caracteres

Hiragana.

VbStrConv.SimplifiedChinese* Convierte los caracteres de chino tradicional a chino

simplificado.

VbStrConv.TraditionalChinese* Convierte los caracteres de chino simplificado en chino

tradicional.

*   Se aplica a configuraciones regionales asiáticas.

**   Sólo se aplica a Japón.

Nota   Estas constantes se especifican en Common Language Runtime de .NET. Por tanto, pueden utilizarse en cualquier lugar del código en vez de sus valores reales. La mayoría de ellas pueden combinarse; por ejemplo, UpperCase + Wide, excepto cuando se excluyan mutuamente; por ejemplo, VbStrConv.Wide + VbStrConv.Narrow.

Éstos son los separadores de palabras válidos para el uso de mayúsculas y

minúsculas correspondiente: nulo (Chr$(0)), tabulación horizontal

(Chr$(9)), avance de línea (Chr$(10)), tabulación vertical (Chr$(11)),

avance de línea (Chr$(12)), retorno de carro (Chr$(13)), espacio (juego de

caracteres de un solo byte) (Chr$(32)). En Asia oriental, el valor real de un

espacio, que puede ser de uno o dos bytes, varía en función del país o

región.

Excepciones o errores

Tipo de excepción Número de error Condición

ArgumentException 5 LocaleID no admitido,

21

Page 22: Funciones VB.Net.doc

UNITEK GRUPO IDAT

Conversion < 0 ó > 2048, o conversión no admitida para la configuración regional especificada.

Comentarios

Las constantes VbStrConv.Wide, VbStrConv.Narrow,

VbStrConv.Simplified Chinese, VbStrConv.Traditional Chinese,

VbStrConv.Katakana y VbStrConv.Hiragana pueden generar errores en

tiempo de ejecución cuando se utilizan en configuraciones regionales donde

no son aplicables, pero no siempre es así: las constantes

VbStrConv.Katakana y VbStrConv.Hiragana se pueden utilizar en un

sistema no japonés que tenga instalado el paquete de idioma japonés.

Además, el uso de las constantes VbStrConv.Wide y VbStrConv.Narrow

se admite en cualquier sistema que tenga instalado un idioma de Asia

oriental.

Ejemplo

En este ejemplo se pone un texto todo en minúsculas.

Dim sText, sNewText As String

sText = "Hello World"

sNewText = StrConv(sText, VbStrConv.LowerCase)

Debug.WriteLine (sNewText) ' Outputs "hello world".

Notas de programadores de Smart Device

No se admite esta función.

Str (Función)

Devuelve la representación String de un número.

Public Shared Function Str(ByVal Number As Object) As String

22

Page 23: Funciones VB.Net.doc

UNITEK GRUPO IDATParámetro

Number Requerido. Object que contiene cualquier expresión numérica válida.

Excepciones o errores

Tipo de excepción Número de error Condición

ArgumentNullException 5 Number no se ha especificado.

InvalidCastException 5 Number no es un tipo numérico.

Comentarios

Cuando los números se conviertan a cadenas, siempre se reservará un

espacio inicial para el signo de Number. Si Number es positivo, la cadena

devuelta contiene un espacio inicial; y el signo más se da por supuesto. Un

número negativo incluirá el signo menos (-) y ningún espacio inicial.

Use la función Format para convertir valores numéricos a los que desee

aplicar formato de fecha, hora o moneda, u otros formatos definidos por el

usuario. Al contrario de lo que ocurre con la función Str, la función Format no

incluye ningún espacio inicial para el signo de Number.

La función Str sólo reconoce el punto (.) como separador decimal válido. Si se utilizan separadores decimales diferentes, como sucede en aplicaciones internacionales, debe utilizar la función CStr para convertir un número en una cadena.

Ejemplo

En este ejemplo se utiliza la función Str para devolver una representación

String de un número. Cuando los números positivos se conviertan a cadenas,

siempre se reservará un espacio inicial para su signo.

Dim MyString As String

MyString = Str(459) ' Returns " 459".

MyString = Str(-459.65) ' Returns "-459.65".

MyString = Str(459.001) ' Returns " 459.001".

23

Page 24: Funciones VB.Net.doc

UNITEK GRUPO IDATRequisitos

Espacio de nombres: Microsoft.VisualBasic

Módulo: Conversion

Ensamblado: Tiempo de ejecución de Microsoft Visual Basic .NET (en

Microsoft.VisualBasic.dll)

Chr, ChrW (Funciones)

Devuelve el carácter asociado al código de carácter especificado.

Public Function Chr(ByVal CharCode As Integer) As Char

Public Function ChrW(ByVal CharCode As Integer) As Char

Parámetro

CharCode Requerido. Expresión Integer que representa el punto de código (code point) o código de carácter del carácter. Si CharCode está fuera del intervalo comprendido entre -32768 y 65535, se produce un error ArgumentException.

Excepciones o errores

Tipo de excepciónNúmero de error Condición

ArgumentException 5 CharCode < -32768 o > 65535.

Comentarios

El intervalo asimétrico aceptado para CharCode compensa las diferencias de

almacenamiento entre los tipos de datos Short e Integer. Por ejemplo,

&H8E01 es -29183 como Short pero +36353 como Integer. De este modo

también se facilita la compatibilidad con Visual Basic 6.0.

Chr utiliza la clase Encoding del espacio de nombres System.Text para

determinar si el subproceso actual está utilizando un juego de caracteres de

24

Page 25: Funciones VB.Net.doc

UNITEK GRUPO IDAT

un solo byte (SBCS) o un juego de caracteres de doble byte (DBCS). Después

utiliza como punto de código el CharCode del juego correspondiente. El

intervalo puede ser del 0 al 255 para caracteres SBCS y del -32768 al 65535

para caracteres DBCS. El carácter devuelto depende de la página de códigos

del subproceso actual, que está incluida en la propiedad ANSICodePage de

la clase TextInfo. Se puede obtener TextInfo.ANSICodePage si se

especifica

System.Globalization.CultureInfo.CurrentCulture.TextInfo.ANSICodeP

age.

ChrW utiliza CharCode como punto de código Unicode. El intervalo no

depende de la configuración de referencia cultural y página de códigos del

subproceso actual. Los valores del -32768 al -1 se tratan igual que los valores

del intervalo del +32768 al +65535.

Los números del 0 al 31 son los mismos que los códigos ASCII estándar no

imprimibles. Por ejemplo, Chr(10) devuelve un carácter de avance de línea.

Nota   La función ChrB de versiones anteriores de Visual Basic devuelve un único byte. Se utiliza principalmente para convertir cadenas en aplicaciones de juegos de caracteres de doble byte (DBCS). En Visual Basic .NET, todas las cadenas están en Unicode y ya no se admite ChrB.

Ejemplo

En este ejemplo se utiliza la función Chr para devolver el carácter asociado al

código de carácter especificado.

Dim MyChar As Char

MyChar = Chr(65) ' Returns "A".

MyChar = Chr(97) ' Returns "a".

MyChar = Chr(62) ' Returns ">".

MyChar = Chr(37) ' Returns "%".

25

Page 26: Funciones VB.Net.doc

UNITEK GRUPO IDAT

Funciones De Fecha

Day (Función)

Devuelve un valor Integer entre 1 y 31 que representa el día del mes.

Public Function Day(ByVal DateValue As DateTime) As Integer

Parámetro

DateValue Requerido. Valor Date del cual se desea extraer el día.

Comentarios

Si se utiliza la función Day, es probable que se tenga que calificar con el

espacio de nombres Microsoft.VisualBasic, porque el espacio de nombres

System.Windows.Forms define Day como una enumeración. El ejemplo

siguiente muestra cómo se resuelve esta ambigüedad mediante la calificación

de Day:

Dim ThisDay As Integer = Microsoft.VisualBasic.DateAndTime.Day(Now)

También se puede obtener el día del mes llamando a DatePart y

especificando DateInterval.Day para el argumento Interval.

Ejemplo

En este ejemplo se utiliza la función Day para obtener el día del mes de una

fecha especificada. En el entorno de desarrollo, el literal de fecha se muestra

en formato corto estándar (por ejemplo "12/02/1969") con los valores de

configuración regional del código correspondiente.

Dim MyDate As Date

Dim MyDay As Integer

MyDate = #2/12/1969# ' Assign a date using standard short format.

MyDay = Microsoft.VisualBasic.DateAndTime.Day(MyDate) ' MyDay contains 12.

26

Page 27: Funciones VB.Net.doc

UNITEK GRUPO IDAT

Day se califica para distinguirlo de la enumeración

System.Windows.Forms.Day.

Requisitos

Espacio de nombres: Microsoft.VisualBasic

Módulo: DateAndTime

Ensamblado: Tiempo de ejecución de Microsoft Visual Basic .NET (en

Microsoft.VisualBasic.dll)

Weekday (Función)

Devuelve un valor Integer que contiene un número que representa el día de la

semana.

Public Function Weekday( _ByVal DateValue As DateTime,Optional ByVal DayOfWeek As FirstDayOfWeek = FirstDayOfWeek.Sunday) As Integer

Valor de enumeraciónValor Descripción

FirstDayOfWeek.System 0 Primer día de la semana especificado en la configuración del sistema

FirstDayOfWeek.Sunday 1 Domingo (predeterminado)

FirstDayOfWeek.Monday 2 Lunes (de acuerdo con la norma ISO 8601, sección 3.17)

FirstDayOfWeek.Tuesday 3 Martes

FirstDayOfWeek.Wednesday

4 Miércoles

FirstDayOfWeek.Thursday 5 Jueves

27

Page 28: Funciones VB.Net.doc

UNITEK GRUPO IDAT

FirstDayOfWeek.Friday 6 Viernes

FirstDayOfWeek.Saturday 7 Sábado

Parámetros

DateValue Requerido. Valor Date del cual se desea determinar el día de la semana.

DayOfWeek Opcional. Valor elegido de la enumeración FirstDayOfWeek que especifica el primer día de la semana. Si no se especifica ningún valor, se utiliza FirstDayOfWeek.Sunday.

Configuración

El argumento DayOfWeek puede tener uno de los siguientes valores:

Excepciones o errores

Tipo de excepción Número de error Condición

ArgumentException 5 DayofWeek es menor que 0 o mayor que 7.

Comentarios

El valor devuelto por la función Weekday corresponde a los valores de la

enumeración FirstDayOfWeek; es decir, 1 indica domingo y 7 indica

sábado.

Si DayOfWeek es inferior a 0 o mayor que 7, se produce un error

ArgumentException.

Nota   Weekday utiliza la configuración de calendario actual de la propiedad CurrentCulture de la clase CultureInfo en el espacio de nombres System.Globalization. Los valores CurrentCulture predeterminados están determinados por la configuración del Panel de control.

Ejemplo

28

Page 29: Funciones VB.Net.doc

UNITEK GRUPO IDAT

En este ejemplo se utiliza la función Weekday para obtener el día de la

semana de una fecha especificada.

Dim MyDate As Date

Dim MyWeekDay As Integer

MyDate = #2/12/1969# ' Assign a date.

MyWeekDay = Weekday(MyDate) ' MyWeekDay contains 4 because

' MyDate represents a Wednesday.

WeekdayName (Función)

Devuelve un valor String que contiene el nombre del día de la semana

especificado.

Public Function WeekdayName(ByVal WeekDay As Integer, Optional ByVal Abbreviate As Boolean = False, Optional ByVal FirstDayOfWeekValue As FirstDayOfWeek = FirstDayOfWeek.System ) As String

Parámetros

WeekDay Requerido. Integer. Designación numérica del día de la semana, entre 1 y 7; 1 indica el primer día de la semana y 7 indica el último día de la semana. Las identidades del primer y último día dependen de la configuración de FirstDayOfWeekValue.

Abbreviate Opcional. Valor Boolean que indica si se abrevia el nombre del día de la semana. Si se omite, el valor predeterminado es False, que significa que el nombre del día de la semana no se abrevia.

FirstDayOfWeekValue Opcional. Valor elegido de la enumeración FirstDayOfWeek que especifica el primer día de la semana. Si no se especifica ningún valor, se utiliza FirstDayOfWeek.System.

Configuración

El argumento FirstDayOfWeekValue puede tener uno de los

siguientes valores:

Valor de enumeraciónValor Descripción

29

Page 30: Funciones VB.Net.doc

UNITEK GRUPO IDAT

FirstDayOfWeek.System 0 Primer día de la semana especificado en la configuración del sistema (valor predeterminado)

FirstDayOfWeek.Sunday 1 Domingo

FirstDayOfWeek.Monday 2 Lunes (de acuerdo con la norma ISO 8601, sección 3.17)

FirstDayOfWeek.Tuesday 3 Martes

FirstDayOfWeek.Wednesday

4 Miércoles

FirstDayOfWeek.Thursday 5 Jueves

FirstDayOfWeek.Friday 6 Viernes

FirstDayOfWeek.Saturday 7 Sábado

Excepciones o errores

Tipo de excepción Número de error Condición

ArgumentException 5 WeekDay es menor que 1 o mayor que 7, o FirstDayOfWeekValue es menor que 0 o mayor que 7.

Comentarios

La cadena devuelta por WeekdayName no depende únicamente de los

argumentos de entrada, sino también de los valores de la Configuración

regional especificados en el Panel de control de Windows.

Si WeekDay es menor que 1 o mayor que 7, o si FirstDayOfWeekValue es

menor que 0 o mayor que 7, se produce un error ArgumentException.

Nota   WeekdayName utiliza la configuración de calendario actual de la propiedad CurrentCulture de la clase CultureInfo en el espacio de

30

Page 31: Funciones VB.Net.doc

UNITEK GRUPO IDATnombres System.Globalization. Los valores CurrentCulture predeterminados están determinados por la configuración del Panel de control.

Requisitos

Espacio de nombres: Microsoft.VisualBasic

Módulo: DateAndTime

Ensamblado: Tiempo de ejecución de Microsoft Visual Basic .NET (en

Microsoft.VisualBasic.dll)

Month (Función)

Devuelve un valor Integer entre 1 y 12 que representa el mes del año.

Public Function Month(ByVal DateValue As DateTime) As Integer

Parámetro

DateValue Requerido. Valor Date del cual se desea extraer el mes.

También se puede obtener el mes del año llamando a DatePart y

especificando DateInterval.Month para el argumento Interval.

Ejemplo

En este ejemplo se utiliza la función Month para obtener el mes de una fecha

especificada. En el entorno de desarrollo, el literal de fecha se muestra en

formato corto de fecha con los valores de configuración regional del código

correspondiente.

Dim MyDate As Date

Dim MyMonth As Integer

MyDate = #2/12/1969# ' Assign a date.

MyMonth = Month(MyDate) ' MyMonth contains 2.

MonthName (Función)

31

Page 32: Funciones VB.Net.doc

UNITEK GRUPO IDAT

Devuelve un valor String que contiene el nombre del mes especificado.

Public Function MonthName(ByVal Month As Integer,Optional ByVal Abbreviate As Boolean = False) As String

Parámetros

Month Requerido. Integer. Designación numérica del mes, entre 1 y 13; 1 indica el mes de enero y 12 indica el mes de diciembre. Se puede utilizar el valor 13 con un calendario de 13 meses. Si el sistema está utilizando un calendario de 12 meses y Month es 13, MonthName devuelve una cadena vacía.

Abbreviate Opcional. Valor Boolean que indica si se va a abreviar el nombre del mes. Si se omite, el valor predeterminado es False, que significa que el nombre del mes no se abrevia.

Excepciones o errores

Tipo de excepción Número de error Condición

ArgumentException 5 Month es menor que 1 o mayor que 13.

Comentarios

La cadena devuelta por MonthName no depende únicamente de los

argumentos de entrada, sino también de los valores de la Configuración

regional especificados en el Panel de control de Windows.

Si Month es inferior a 1 o mayor que 13, se produce un error

ArgumentException.

Nota   MonthName utiliza la configuración de calendario actual de la propiedad CurrentCulture de la clase CultureInfo en el espacio de nombres System.Globalization. Los valores CurrentCulture predeterminados están determinados por la configuración del Panel de control.

Ejemplo

32

Page 33: Funciones VB.Net.doc

UNITEK GRUPO IDAT

En este ejemplo se utiliza la función MonthName para determinar el

nombre del mes, a partir del entero dado. El valor Boolean determinará si

se muestra el nombre completo (False) o el nombre abreviado (True).

Dim MyMonth As Integer

Dim Name As String

MyMonth = 4

Name = MonthName(MyMonth, True) ' "True" returns an abbreviated name.

Msgbox(Name) ' Name contains "Apr".

Requisitos

Espacio de nombres: Microsoft.VisualBasic

Módulo: DateAndTime

Ensamblado: Tiempo de ejecución de Microsoft Visual Basic .NET (en

Microsoft.VisualBasic.dll)

Vea también

Year (Función)

Devuelve un valor Integer entre 1 y 9999 que representa el año.

Public Function Year(ByVal DateValue As DateTime) As Integer

Parámetro

DateValue Requerido. Valor Date del cual se desea extraer el año.

También se puede obtener el año llamando a DatePart y especificando

DateInterval.Year para el argumento Interval.

Ejemplo

33

Page 34: Funciones VB.Net.doc

UNITEK GRUPO IDAT

En este ejemplo se utiliza la función Year para obtener el año de una fecha

especificada. En el entorno de desarrollo, el literal de fecha se muestra en

formato corto de fecha con los valores de configuración regional del código

correspondiente.

Dim MyDate As Date

Dim MyYear As Integer

MyDate = #2/12/1969# ' Assign a date.

MyYear = Year(MyDate) ' MyYear contains 1969.

Requisitos

Espacio de nombres: Microsoft.VisualBasic

Módulo: DateAndTime

Ensamblado: Tiempo de ejecución de Microsoft Visual Basic .NET (en

Microsoft.VisualBasic.dll)

DateDiff (Función)

Devuelve un valor Long que especifica el número de intervalos de tiempo entre

dos valores Date.

Public Overloads Function DateDiff(ByVal Interval As DateInterval,ByVal Date1 As DateTime,ByVal Date2 As DateTime,Optional ByVal DayOfWeek As FirstDayOfWeek = FirstDayOfWeek.Sunday,Optional ByVal  WeekOfYear As FirstWeekOfYear = FirstWeekOfYear.Jan1) As Long

O bien

Public Overloads Function DateDiff(ByVal Interval As String,ByVal Date1 As Object,ByVal Date2 As Object,Optional ByVal DayOfWeek As FirstDayOfWeek = FirstDayOfWeek.Sunday,Optional ByVal WeekOfYear As FirstWeekOfYear = FirstWeekOfYear.Jan1) As Long

34

Page 35: Funciones VB.Net.doc

UNITEK GRUPO IDATParámetros

Interval Requerido. Valor de enumeración DateInterval o expresión String que representa el intervalo de tiempo que se desea utilizar como unidad de diferencia entre Date1 y Date2.

Date1, Date2 Requerido. Date. Dos valores de fecha u hora que se desean utilizar en el cálculo. El valor de Date1 se sustrae del valor de Date2 para obtener la diferencia. Ninguno de los dos valores se modifica en el programa que realiza la llamada.

DayOfWeek Opcional. Valor elegido de la enumeración FirstDayOfWeek que especifica el primer día de la semana. Si no se especifica ningún valor, se utiliza FirstDayOfWeek.Sunday.

WeekOfYear Opcional. Valor elegido de la enumeración FirstWeekOfYear que especifica la primera semana del año. Si no se especifica ningún valor, se utiliza FirstWeekOfYear.Jan1.

Configuración

El argumento Interval puede tener uno de los siguientes

valores:

Valor de enumeraciónCadena Unidad de diferencia temporal

DateInterval.Day d Día

DateInterval.DayOfYear y Día

DateInterval.Hour h Hora

DateInterval.Minute n Minuto

DateInterval.Month m Mes

DateInterval.Quarter q Trimestre

DateInterval.Second s Segundo

35

Page 36: Funciones VB.Net.doc

UNITEK GRUPO IDAT

DateInterval.Weekday w Semana

DateInterval.WeekOfYear

ww Semana del calendario

DateInterval.Year yyyy Año

El argumento DayOfWeek puede tener uno de los

siguientes valores:

Valor de enumeraciónValor Descripción

FirstDayOfWeek.System 0 Primer día de la semana especificado en la configuración del sistema

FirstDayOfWeek.Sunday 1 Domingo (predeterminado)

FirstDayOfWeek.Monday 2 Lunes (de acuerdo con la norma ISO 8601, sección 3.17)

FirstDayOfWeek.Tuesday 3 Martes

FirstDayOfWeek.Wednesday

4 Miércoles

FirstDayOfWeek.Thursday 5 Jueves

FirstDayOfWeek.Friday 6 Viernes

FirstDayOfWeek.Saturday 7 Sábado

El argumento WeekOfYear puede tener uno de los siguientes valores:

Valor de enumeraciónValor Descripción

FirstWeekOfYear.System 0 Primera semana del año

36

Page 37: Funciones VB.Net.doc

UNITEK GRUPO IDAT

especificada en la configuración del sistema

FirstWeekOfYear.Jan1 1 Semana en la que se encuentra el 1 de enero (predeterminado)

FirstWeekOfYear.FirstFourDays

2 Semana que contiene al menos cuatro días del nuevo año (de acuerdo con la norma ISO 8601, sección 3.17)

FirstWeekOfYear.FirstFullWeek

3 Primera semana completa del nuevo año

Excepciones o errores

Tipo de excepción Número de error Condición

ArgumentException 5 Interval no válido.

ArgumentException 5 Date o DayofWeek quedan fuera del intervalo.

InvalidCastException 13 Date1 o Date2 son tipos no válidos.

Comentarios

Se puede utilizar la función DateDiff para determinar el número de

intervalos de tiempo especificados que existen entre dos valores de fecha u

hora. Por ejemplo, con DateDiff podría calcular el número de días entre

dos fechas o el número de semanas entre hoy y el último día del año.

Si Interval se establece en DateInterval.DayOfYear, se trata igual que

DateInterval.Day, porque DayOfYear no es una unidad significativa para

un intervalo de tiempo.

37

Page 38: Funciones VB.Net.doc

UNITEK GRUPO IDAT

Si Interval se establece en DateInterval.WeekOfYear, el valor devuelto

representa el número de semanas entre el primer día de la semana que

contiene Date1 y el primer día de la semana que contiene Date2. El ejemplo

siguiente muestra cómo este procedimiento genera resultados distintos de

DateInterval.Weekday.

Dim DatTim1 As Date = #1/4/2001# ' This is a Thursday.

Dim DatTim2 As Date = #1/9/2001# ' This is the next Tuesday.

' Assume Sunday is specified as first day of the week.

Dim WD As Long = DateDiff(DateInterval.Weekday, DatTim1, DatTim2)

Dim WY As Long = DateDiff(DateInterval.WeekOfYear, DatTim1, DatTim2)

En el ejemplo anterior, DateDiff devuelve 0 a WD porque la diferencia entre

las dos fechas es menor de siete días, pero devuelve 1 a WY porque existe

una diferencia de siete días entre los primeros días de las respectivas

semanas del calendario.

Si Interval se establece en DateInterval.Year, el valor devuelto se calcula

meramente a partir de las partes del año Date1 y Date2.

Como Date1 y Date2 son del tipo de datos Date, contienen valores precisos

de fecha y hora en pasos (ticks) de 100 nanosegundos en el temporizador

del sistema. Sin embargo, DateDiff siempre devuelve el número de

intervalos de tiempo como un valor Long.

Si Date1 representa una fecha y hora posteriores a Date2, DateDiff

devuelve un número negativo.

Si algún argumento tiene un valor no válido, se produce un error

ArgumentException. Si el argumento Date1 o Date2 tiene un valor que no

puede convertirse a un valor Date válido, se produce un error

InvalidCastException.

38

Page 39: Funciones VB.Net.doc

UNITEK GRUPO IDATNota   Al comparar el 31 de diciembre con el 1 de enero del año siguiente, DateDiff devolverá 1 para DateInterval.Year, DateInterval.Quarter o DateInterval.Month, aunque sólo haya pasado un día.

Puesto que todos los valores Date se basan en una estructura DateTime,

sus métodos proporcionan opciones adicionales para buscar intervalos de

tiempo. Por ejemplo, se puede utilizar el método Subtract de cualquiera de

sus formas sobrecargadas. Uno de ellos sustrae un TimeSpan de una

variable Date para devolver otro valor Date; el otro sustrae un valor Date

para devolver un TimeSpan. Se puede temporizar un proceso para saber

cuántos milisegundos tardará, como en el caso siguiente:

Dim StartTime As Date = Now ' Starting date/time.

' Run the process that is to be timed.

Dim RunLength As System.TimeSpan = Now.Subtract(StartTime)

Dim Millisecs As Integer = RunLength.Milliseconds

Ejemplo

En este ejemplo se utiliza la función DateDiff para mostrar el número de

días entre una fecha dada y la fecha actual.

Dim FirstDate, Msg As String ' Declare variables.

Dim SecondDate As Date

FirstDate = InputBox("Enter a date")

SecondDate = CDate(FirstDate)

Msg = "Days from today: " & DateDiff(DateInterval.Day, Now, SecondDate)

MsgBox (Msg)

DatePart (Función)

Devuelve un valor Integer que contiene el componente especificado de un valor

Date dado.

Public Overloads Function DatePart(ByVal Interval As DateInterval,ByVal DateValue As DateTime,Optional ByVal FirstDayOfWeekValue As FirstDayOfWeek = VbSunday,Optional ByVal FirstWeekOfYearValue As FirstWeekOfYear = VbFirstJan1) As Integer

39

Page 40: Funciones VB.Net.doc

UNITEK GRUPO IDAT

O bien

Public Overloads Function DatePart( ByVal Interval As String,ByVal DateValue As Object,Optional ByVal DayOfWeek As FirstDayOfWeek = FirstDayOfWeek.Sunday,Optional ByVal WeekOfYear As FirstWeekOfYear = FirstWeekOfYear.Jan1) As Integer

Parámetros

Interval Requerido. Valor de enumeración DateInterval o expresión String que representa la parte del valor de fecha u hora que se desea devolver.

DateValue Requerido. Valor Date que se desea evaluar.

FirstDayOfWeekValue Opcional. Valor elegido de la enumeración FirstDayOfWeek que especifica el primer día de la semana. Si no se especifica ningún valor, se utiliza FirstDayOfWeek.Sunday.

FirstWeekOfYearValue Opcional. Valor elegido de la enumeración FirstWeekOfYear que especifica la primera semana del año. Si no se especifica ningún valor, se utiliza FirstWeekOfYear.Jan1.

Configuración

El argumento Interval puede tener uno de los siguientes valores:

Valor de enumeraciónCadena

Parte del valor de fecha u hora devuelta

DateInterval.Day d Día del mes (del 1 al 31)

DateInterval.DayOfYear y Día del año (del 1 al 366)

DateInterval.Hour h Hora

DateInterval.Minute n Minuto

DateInterval.Month m Mes

DateInterval.Quarter q Trimestre

40

Page 41: Funciones VB.Net.doc

UNITEK GRUPO IDAT

DateInterval.Second s Segundo

DateInterval.Weekday w Día de la semana (del 1 al 7)

DateInterval.WeekOfYear

ww Semana del año (de la 1 a la 53)

DateInterval.Year yyyy Año

El argumento FirstDayOfWeekValue puede tener uno de los siguientes

valores:

Valor de enumeraciónValor Descripción

FirstDayOfWeek.System 0 Primer día de la semana especificado en la configuración del sistema

FirstDayOfWeek.Sunday 1 Domingo (predeterminado)

FirstDayOfWeek.Monday 2 Lunes (de acuerdo con la norma ISO 8601, sección 3.17)

FirstDayOfWeek.Tuesday 3 Martes

FirstDayOfWeek.Wednesday

4 Miércoles

FirstDayOfWeek.Thursday 5 Jueves

FirstDayOfWeek.Friday 6 Viernes

FirstDayOfWeek.Saturday 7 Sábado

El argumento FirstWeekOfYearValue puede tener uno de los siguientes

valores:

41

Page 42: Funciones VB.Net.doc

UNITEK GRUPO IDAT

Valor de enumeraciónValor Descripción

FirstWeekOfYear.System 0 Primera semana del año especificada en la configuración del sistema

FirstWeekOfYear.Jan1 1 Semana en la que se encuentra el 1 de enero (predeterminado)

FirstWeekOfYear.FirstFourDays

2 Semana que contiene al menos cuatro días del nuevo año (de acuerdo con la norma ISO 8601, sección 3.17)

FirstWeekOfYear.FirstFullWeek

3 Primera semana completa del nuevo año

Excepciones o errores

Tipo de excepción Número de error Condición

ArgumentException 5 Interval no es válido.

InvalidCastException 13 DateValue no se puede convertir a Date.

Comentarios

Se puede utilizar la función DatePart para evaluar un valor de fecha u hora

y devolver un componente específico. Por ejemplo, se podría utilizar

DatePart para calcular el día de la semana o la hora actual.

Si se elige DateInterval.Weekday para el argumento Interval, el valor

devuelto es coherente con los valores de la enumeración

FirstDayOfWeek. Si elige DateInterval.WeekOfYear, DatePart utiliza

las clases Calendar y CultureInfo del espacio de nombres

System.Globalization para determinar la configuración actual.

42

Page 43: Funciones VB.Net.doc

UNITEK GRUPO IDAT

El argumento FirstDayOfWeekValue afecta a los cálculos que utilizan los

valores DateInterval.Weekday y DateInterval.WeekOfYear para

Interval. El argumento FirstWeekOfYearValue afecta a los cálculos que

especifican DateInterval.WeekOfYear para Interval.

Si algún argumento tiene un valor no válido, se produce un error

ArgumentException. Si el argumento DateValue tiene un valor que no

puede convertirse a un valor Date válido, se produce un error

InvalidCastException.

Puesto que todos los valores Date se basan en una estructura DateTime,

sus métodos proporcionan opciones adicionales para recuperar partes de

fecha u hora. Por ejemplo, se puede obtener el valor de fecha completo de

una variable Date, con el valor de hora establecido en medianoche, como

se muestra a continuación:

Dim CurrDatTim As Date = Now ' Current date and time.

Dim LastMidnight As Date = CurrDatTim.Date ' At midnight.

Ejemplo

En este ejemplo se utiliza la función DatePart sobre una fecha para

mostrar el trimestre del año en que se produce.

Dim FirstDate, Msg As String 'Declare variables.

Dim SecondDate As Date

FirstDate = InputBox("Enter a date:")

SecondDate = CDate(FirstDate)

Msg = "Quarter: " & DatePart(DateInterval.Quarter, SecondDate)

MsgBox (Msg)

43