import java.util.Calendar;
import java.util.GregorianCalendar;
public class TotalLifeTimeDays {
public int getLifeTimeDays(int birthYear, int birthMonth, int birthDay) {
Calendar birthDayCal = new GregorianCalendar();
Calendar currentDayCal = Calendar.getInstance();
birthDayCal.set(birthYear, birthMonth, birthDay);
return (int)((currentDayCal.getTime().getTime() - birthDayCal.getTime().getTime())
/ (1000 * 60 * 60 * 24));
}
public static void main(String[] args) {
TotalLifeTimeDays totalLifeTimeDays = new TotalLifeTimeDays();
int totalDays = totalLifeTimeDays.getLifeTimeDays(1982, 11, 20);
System.out.println("Total days lived: " + totalDays);
}
}
martes, 18 de diciembre de 2012
Cálculo de días vividos desde fecha de nacimiento
Cómo calcular el total de días transcurridos desde la fecha de nacimiento a la fecha actual.
Android: Juego de Matemáticas
Como práctica hice este pequeño programa que intenta ser un juego de matemáticas. Operaciones básicas de suma, resta, multiplicación y división, son generadas al azar con la respuesta válida y dos respuestas incorrectas. Cada respuesta correcta acumula un punto.
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
import com.example.mytoolbox.utilities.NumberUtilities;
public class MathRallyActivity extends Activity implements OnClickListener {
public enum Operation {
SUM, DIVISION, MULTIPLICATION, SUBSTRACT
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_math_rally);
Button buttonOption1 = (Button) findViewById(R.id.buttonMath1);
Button buttonOption2 = (Button) findViewById(R.id.buttonMath2);
Button buttonOption3 = (Button) findViewById(R.id.buttonMath3);
ImageButton buttonHome = (ImageButton) findViewById(R.id.imageButtonHome);
buttonOption1.setOnClickListener(this);
buttonOption2.setOnClickListener(this);
buttonOption3.setOnClickListener(this);
buttonHome.setOnClickListener(this);
createOperation();
}
private void createOperation() {
Operation operation = generateRandOperation();
int operand1 = NumberUtilities.generateRandNumber(2, 100);
int operand2 = NumberUtilities.generateRandNumber(2, 100);
String operationText = String.valueOf(operand1) + " " +
getOperationString(operation) + " " + String.valueOf(operand2) + "?";
TextView textViewOperation = (TextView) findViewById(R.id.textViewOperation);
textViewOperation.setText(operationText);
float rightValue = calculateRightValue(operation, operand1, operand2);
rightBox = NumberUtilities.generateRandNumber(1, 3);
float randWrongValue1 = NumberUtilities.generateRandNumber(2);
float randWrongValue2 = NumberUtilities.generateRandNumber(2);
Button buttonOption1 = (Button) findViewById(R.id.buttonMath1);
Button buttonOption2 = (Button) findViewById(R.id.buttonMath2);
Button buttonOption3 = (Button) findViewById(R.id.buttonMath3);
switch (rightBox) {
case 0:
buttonOption1.setText(String.valueOf(rightValue));
buttonOption2.setText(String.valueOf(randWrongValue1));
buttonOption3.setText(String.valueOf(randWrongValue2));
break;
case 1:
buttonOption2.setText(String.valueOf(rightValue));
buttonOption1.setText(String.valueOf(randWrongValue1));
buttonOption3.setText(String.valueOf(randWrongValue2));
break;
case 2:
buttonOption3.setText(String.valueOf(rightValue));
buttonOption1.setText(String.valueOf(randWrongValue1));
buttonOption2.setText(String.valueOf(randWrongValue2));
break;
}
}
private float calculateRightValue(Operation oper, int operand1, int operand2) {
float calculation = 0;
if (oper == Operation.SUM) {
calculation = operand1 + operand2;
} else if (oper == Operation.MULTIPLICATION) {
calculation = operand1 * operand2;
} else if (oper == Operation.SUBSTRACT) {
calculation = operand1 - operand2;
} else if (oper == Operation.DIVISION) {
calculation = operand1 / operand2;
}
return calculation;
}
private String getOperationString(Operation oper) {
String operationText = "";
if (oper == Operation.SUM) {
operationText = "+";
} else if (oper == Operation.MULTIPLICATION) {
operationText = "*";
} else if (oper == Operation.SUBSTRACT) {
operationText = "-";
} else if (oper == Operation.DIVISION) {
operationText = "/";
}
return operationText;
}
private Operation generateRandOperation() {
int rand = NumberUtilities.generateRandNumber(1, 4);
Operation operation = null;
switch(rand) {
case 0:
operation = Operation.SUM;
break;
case 1:
operation = Operation.DIVISION;
break;
case 2:
operation = Operation.MULTIPLICATION;
break;
case 3:
operation = Operation.SUBSTRACT;
break;
}
return operation;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_math_rally, menu);
return true;
}
@Override
public void onClick(View view) {
boolean correct = false;
boolean play = true;
switch(view.getId()) {
case R.id.buttonMath1:
if (rightBox == 0) {
correct = true;
}
break;
case R.id.buttonMath2:
if (rightBox == 1) {
correct = true;
}
break;
case R.id.buttonMath3:
if (rightBox == 2) {
correct = true;
}
break;
case R.id.imageButtonHome:
startActivity(new Intent(MathRallyActivity.this, ChooseActivity.class));
play = false;
break;
}
if (correct) {
points++;
updateScore();
} if(play) {
createOperation();
}
}
private void updateScore() {
EditText editText = (EditText) findViewById(R.id.editTextPoints);
editText.setText(String.valueOf(points));
}
private int rightBox;
private int points;
}
miércoles, 5 de diciembre de 2012
JSP: Obtener la fecha actual
Dejo este pequeño código mostrando como se puede obtener la fecha actual usando código JSP. En ocasiones es preferible utilizar código del lado del servidor, en lugar de usar JavaScript, para no depender de que un usuario tiene bien configurada la fecha en su ordenador, o si hay diferencias de huso horario.
<%@ page import="java.util.*" %>
<%@ page import="java.text.SimpleDateFormat"%>
<%
Date dNow = new Date();
SimpleDateFormat ft =
new SimpleDateFormat ("MM/dd/yyyy");
String currentDate = ft.format(dNow);
%>
<p>The current date is: <%=currentDate%></p>
viernes, 23 de noviembre de 2012
Android: Chequear conectividad con WiFi
Para poder chequear la conectividad con WiFi primero hay que agregar los permisos respectivos en el manifiesto de Android:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mytoolbox"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
...
</manifest>
Aquí dejo un código que verifica la conectividad. Si no existe entonces despliega un mensaje indicando al usuario que debe haber conectividad para poder usar la aplicación. Seguidamente termina la aplicación.
private void checkWiFiConnectivity() {
ConnectivityManager connMan = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
boolean wifiIsOn = connMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
.isConnectedOrConnecting();
Log.d("GABO", "WiFi is : " + wifiIsOn);
if(!wifiIsOn) {
finishApplication();
}
}
private void finishApplication() {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setMessage("You need WiFi connection to access this App!");
builder.setCancelable(false);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MainActivity.this.finish();
}
});
AlertDialog alert = builder.create();
alert.show();
}
Suscribirse a:
Entradas (Atom)
