6 de abril de 2012

DateTimePicker VS

El control DateTimePicker permite seleccionar una fecha de manera conveniente. Cuando se accede a este objeto, muestra la fecha actual y, mediante flechas de desplazamiento que pertenecen al control, muestra calendarios que pueden recorrerse mes a mes y año a año.

Efectuando un clic sobre un número de día, el control se cierra, pudiéndose extraer este dato a través de la propiedad Text o la Propiedad Value, para que se pueda utilizar a posteriori.



dateTimePicker en VB

Ahora un ejemplo en VB cuyo form en vista diseño con labels, DateTimePicker, botones y textbox a continuación, el primer DateTimePicker tiene nombre datetimepicker1 y no esta habilitado es solo para mostrar como cambiar formato, el segundo DateTimePicker si se utiliza mas para cálculos con los botones correspondientes y tiene nombre DTP:




Ahora la aplicación ejecutándose y el código correspondiente, el primer DateTimePicker tiene nombre datetimepicker1 y no esta habilitado es solo para mostrar como cambiar formato, el segundo DateTimePicker si se utiliza mas para cálculos con los botones correspondientes y tiene nombre DTP:



Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox2.Text = DTP.Value.ToShortDateString
        TextBox1.Text = DTP.Value.ToLongDateString
        Label4.Text = "Hora formato corto es"
        Label6.Text = "Hora formato largo es"
        TextBox3.Text = DTP.Value.ToShortTimeString
        TextBox4.Text = DTP.Value.ToLongTimeString
        Label13.Text = Me.DTP.Value.Year
        Label14.Text = Me.DTP.Value.Month
        Label15.Text = Me.DTP.Value.Day
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DateTimePicker1.Format = DateTimePickerFormat.Custom
        DateTimePicker1.Value.ToString("yyyy/MM/dd")
        Label3.Text = "La fecha de hoy " & Date.Today
        Label5.Text = "La fecha y hora " & Date.Now

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim Edad As Int32
        Dim Diferencia As TimeSpan
        Diferencia = Today.Subtract(DTP.Value.ToShortDateString)
        Edad = Fix(Diferencia.TotalDays / 365.25)
        TxtDias.Text() = Diferencia.TotalDays.ToString
        TxtHoras.Text() = Diferencia.TotalHours.ToString()
        TxtMinutos.Text() = Diferencia.TotalMinutes
        TxtEdad.Text() = Edad.ToString

        Dim Fnac As Date = DTP.Value.ToShortDateString
        Select Case Fnac.DayOfWeek
            Case DayOfWeek.Monday
                TxtDiaNac.Text = "Lunes"
            Case DayOfWeek.Tuesday
                TxtDiaNac.Text = "Martes"
            Case DayOfWeek.Wednesday
                TxtDiaNac.Text = "Mi‚rcoles"
            Case DayOfWeek.Thursday
                TxtDiaNac.Text = "Jueves"
            Case DayOfWeek.Friday
                TxtDiaNac.Text = "Viernes"
            Case DayOfWeek.Saturday
                TxtDiaNac.Text = "Sabado"
            Case DayOfWeek.Sunday
                TxtDiaNac.Text = "Domingo"
        End Select

    End Sub
End Class

También puedes usar
edad = Fix((DateDiff(DateInterval.Day, DateTimePicker1.Value, Now.Date)) / 365) & " años"




dateTimePicker en C#

Ahora un ejemplo en C# cuyo form en vista diseño con labels, DateTimePicker, botones y textbox a continuación, el primer DateTimePicker tiene nombre datetimepicker1 y no esta habilitado es solo para mostrar como cambiar formato, el segundo DateTimePicker si se utiliza mas para cálculos con los botones correspondientes y tiene nombre DTP:



Ahora la aplicación ejecutándose y el código correspondiente, el primer DateTimePicker tiene nombre datetimepicker1 y no esta habilitado es solo para mostrar como cambiar formato, el segundo DateTimePicker si se utiliza mas para cálculos con los botones correspondientes y tiene nombre DTP:



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace DateTimePicker_C
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            dateTimePicker1.Format = DateTimePickerFormat.Custom;
            dateTimePicker1.Value.ToString("yyyy/MM/dd");
            label1.Text = "La fecha de hoy es   " + System.DateTime.Today;
            label2.Text = "La fecha y hora es   " + System.DateTime.Now;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox2.Text = DTP.Value.ToShortDateString();
            textBox3.Text = DTP.Value.ToLongDateString();
            textBox1.Text = DTP.Value.ToShortTimeString();
            textBox4.Text = DTP.Value.ToLongTimeString();
            textBox7.Text=DTP.Value.Day.ToString();
            textBox5.Text=DTP.Value.Month.ToString();
            textBox6.Text = DTP.Value.Year.ToString();
        }

        private void button2_Click(object sender, EventArgs e)
        {

         TimeSpan Diferencia = DateTime.Today.Subtract(DTP.Value.Date);
            int Edad = (int)(Diferencia.TotalDays / 365.25);
            TxtDias.Text = Diferencia.TotalDays.ToString();
            TxtHoras.Text = Diferencia.TotalHours.ToString();
            TxtMinutos.Text = Diferencia.TotalMinutes.ToString();
            TxtEdad.Text = Edad.ToString();

            System.DateTime Fnac = DTP.Value.Date;
            switch (Fnac.DayOfWeek)
            {
                case DayOfWeek.Monday:
                    TxtDiaNac.Text = "Lunes";
                    break;
                case DayOfWeek.Tuesday:
                    TxtDiaNac.Text = "Martes";
                    break;
                case DayOfWeek.Wednesday:
                    TxtDiaNac.Text = "Miercoles";
                    break;
                case DayOfWeek.Thursday:
                    TxtDiaNac.Text = "Jueves";
                    break;
                case DayOfWeek.Friday:
                    TxtDiaNac.Text = "Viernes";
                    break;
                case DayOfWeek.Saturday:
                    TxtDiaNac.Text = "Sabado";
                    break;
                case DayOfWeek.Sunday:
                    TxtDiaNac.Text = "Domingo";
                    break;
            }
        }
     }
  }


Nota: DTP.Value ya es DateTime, no necesitas convertirlo a string, si solo quieres la fecha sin tener en cuenta la hota usa DTP.Value.Date.