Archive for enero, 2013

Android: inicializar un DatePicker

Cuando usamos un DatePicker para seleccionar una fecha, en casi todos los casos haremos algo con esa nueva fecha. Si lo que queremos hacer tiene que hacerse en el momento que se cambia la fecha tendremos que inicializar el DatePicker y asignarle el Listener que manejará el evento OnDateChange.

Para inicializar el DatePicker usaremos esta senténcia:

datePicker.init(year, month, day, dateSetListener);

Veamos un ejemplo:

DatePicker datePicker1 = (DatePicker) findViewById(R.id.datePicker1);
datePicker1.init(datePicker1.getYear(), datePicker1.getMonth(), datePicker1.getDayOfMonth(), new OnDateChangedListener() {
 @Override
 public void onDateChanged(DatePicker view, int year, int monthOfYear,int dayOfMonth) {
  // Hacemos algo cuando cambia la fecha
  Toast.makeText(getApplicationContext(), "FECHA:" + dayOfMonth + "/" + (monthOfYear+1) + "/" + year, Toast.LENGTH_SHORT).show();
 }
});

En el ejemplo hemos inicializado el DatePicker con la fecha que tiene por defecto, es la fecha actual. Podemos inicializar el DatePicker con la fecha que necesitemos.

datePicker.init(2013, 00, 31, dateSetListener);
private DatePicker.OnDateChangedListener dateSetListener = new DatePicker.OnDateChangedListener() {
 public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
  Toast.makeText(getApplicationContext(), "FECHA:" + dayOfMonth + "/" + (monthOfYear+1) + "/" + year, Toast.LENGTH_SHORT).show();
 } 
};

En este ultimo ejemplo hemos definido el comportamiento del Listener de forma autónoma, de manera que se podría reutilizar en otro DatePicker.

 

Share

Java: GetTimestamp usando Calendar

El timestamp UNIX es el número de segundos desde las 00:00:00 UTC del 1 de enero de 1970.

El Timestamp es una forma muy común de manipular y guardar las fechas. La parte práctica es que el formato es LONG y es muy fácil de manipular. La parte “mala” es que siempre hay que manipularlo para obtener fechas amigables para el usuario.

El objeto Calendar dispone del método getTimeInMillis, que devuelve el timestamp en milisegundos de la fecha actual.

 Calendar calendar = Calendar.getInstance();
 calendar.getTimeInMillis();

Si queremos obtener el timestamp de una fecha concreta, tenemos que inicializar la instancia del objeto Calendar.

 Calendar calendario = Calendar.getInstance();
 calendario.set( Calendar.YEAR, 2013);
 calendario.set( Calendar.MONTH, 03 );
 calendario.set( Calendar.DAY_OF_MONTH, 23 );
 calendario.set( Calendar.HOUR_OF_DAY, 0 ); 
 calendario.set( Calendar.MINUTE, 0 );
 calendario.set( Calendar.SECOND, 0); 
 calendario.set( Calendar.MILLISECOND, 0 );

Así queda en una función:

private long getTimeStamp(int year, int month, int day_of_month, int hour_of_day, int minutes, int seconds, int miliseconds ) {
 Calendar calendar = Calendar.getInstance();
 calendar.getTimeInMillis();
 calendar.set( Calendar.YEAR, year );
 calendar.set( Calendar.MONTH, month );
 calendar.set( Calendar.DAY_OF_MONTH, day_of_month );
 calendar.set( Calendar.HOUR_OF_DAY, hour_of_day ); 
 calendar.set( Calendar.MINUTE, minutes ); 
 calendar.set( Calendar.SECOND, seconds ); 
 calendar.set( Calendar.MILLISECOND, miliseconds );
 return calendar.getTimeInMillis();
}

Con la llamada:

long today = getTimeStamp(2013, 0, 30, 0, 0, 0, 0 );

Hay una cosa que hay que tener en cuenta, los meses van de 0 a 11.

Share

C# : Descargar un fichero de un FTP con .NET

En estos últimos posts hemos visto como conectarnos a un servidor FTP, como listar los archivos encontrados, como conseguir la talla de un fichero especifico y ahora cerramos este tour descargando ese archivos con el siguiente snippet :

FtpWebRequest request = FtpWebRequest.Create([FTPAddress] + "/" + filename) as FtpWebRequest;
request.Method = WebRequestMethods.Ftp.DownloadFile;

Y despues necesitaremos crear una bucle while  con el siguiente código :

int bytesRead = reader.Read(buffer, 0, buffer.Length);

Donde reader es el ResponseStream. La variable bytesRead retorna cuantos bytes hemos descargado hasta el momento. Cuando bytesRead llegue a 0 podremos romper la bucle.

Share

C# : Conseguir la talla de un fichero en un servidor FTP con .NET

Seguimos con este mini monográfico sobre el FTP en .NET. Ahora ya sabemos como conectarnos a un servidor FTP, y como listar los ficheros remotos.

Ahora si queremos saber la talla de uno de esos fichero remotos podemos hacer lo siguiente :

FtpWebRequest request = FtpWebRequest.Create([FTPAddress]) as FtpWebRequest;
request.Method = WebRequestMethods.Ftp.ListDirectory;

int dataLength = (int)request.GetResponse().ContentLength;
Share

C# : Listar ficheros de un servidor remoto FTP en .NET

Si necesitáis listar ficheros de un servidor FTP podéis usar el código siguiente (doy por hecho el que ya os habéis conectado al servidor FTP, sino mirar el post relacionado) :

FtpWebRequest request = FtpWebRequest.Create([FTPAddress]) as FtpWebRequest;
request.Method = WebRequestMethods.Ftp.ListDirectory;

Y ahora “leemos” el contenido de dicho directorio :

List<string> files = new List<string>();
StreamReader reader = new StreamReader(responseStream);

while (!reader.EndOfStream)
{
     Application.DoEvents();
     files.Add(reader.ReadLine());
}
reader.Close();
Share

C# : Conectar a servidor FTP con .NET

Si necesitamos conectar a un server FTP usando .NET y C# este código os puede ser de utilidad…

FtpWebRequest request = FtpWebRequest.Create([FTPString]) as FtpWebRequest;

request.Credentials = new NetworkCredential(username, password);
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = true;

FtpWebResponse response = request.GetResponse() as FtpWebResponse;
Stream responseStream = response.GetResponseStream();

//... Aqui podeis meter los comandos FTP que necesiteis...
responseStream.Close();
response.Close(); //Cerramos la conexión con el server...
Share

Objective-C : Detectar el carrier de nuestro Iphone

Si necesitáis saber con que carrier estáis conectando podéis importar “Core Telephony”

#import <CoreTelephony/CTTelephonyNetworkInfo.h>

Y usar este código para acceder a el :

CTTelephonyNetworkInfo *phoneInfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *phoneCarrier = [phoneInfo subscriberCellularProvider];
NSLog(@"Carrier = %@", [phoneCarrier carrierName]);
[phoneInfo release];
Share

Objective-C : Mostrar el Network Activity Indicator

Si en alguna de tus apps para Iphone necesitas interactuar con el Network Activity Indicator, lo puedes hacer de una manera muy sencilla.

Para mostrarlo :

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

Para ocultarlo :

[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

 

Share

Objective-C : Usar la vibración del Iphone

Si queremos integrar la vibración en una app para el Iphone, solo tendremos que hacer un par de pasos.

1- Importar AudioToolbox

#import <AudioToolbox/AudioToolbox.h>

2-Hacer esta llamada :

AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
Share

Cerrar MDIChild de un MDIParent

Podemos cerrar todos los formularios MDIChild de un formulario MDIParent

' Se asume que se ejecuta desde el formulario MDIParent usando Me
For Each ChildForm As Form In Me.MdiChildren
    ChildForm.Close()
Next
Share