Silveira’s Blog
Quidquid latine dictum sit, altum viditur…Java Calendar Examples
Posted July 1st, 2008 in Uncategorized
import java.util.Calendar;
public class Main {
public static void main(String[] args) {
Calendar today = Calendar.getInstance();
System.out.println("Today is " + today.getTime());
}
}
In this simplest example of Calendar, the output would be
Today is : Tue Jul 01 10:56:14 BRT 2008
In the next example how to get information about the day inside the year, month and week.
import java.util.Calendar;
public class Main {
public static void main(String[] args) {
Calendar today = Calendar.getInstance();
int dof = today.get(Calendar.DAY_OF_YEAR);
int dom = today.get(Calendar.DAY_OF_MONTH);
int dow = today.get(Calendar.DAY_OF_WEEK);
System.out.println("Today is the " + dof +"º day in this year,");
System.out.println("the " + dom +"º day in this month");
System.out.println("and the " + dow +"º day in this week.");
}
}
The output could be
Today is the 183º day in this year,
the 1º day in this month
and the 3º day in this week.
The next example is about how to add (and subtract) a duration from a Calendar.
import java.util.Calendar;
public class Main {
public static void main(String[] args) {
Calendar today = Calendar.getInstance();
System.out.println("Today is " + today.getTime());
Calendar yesterday = (Calendar)today.clone();
yesterday.add(Calendar.DATE, -1);
System.out.println("Yesterday was " + yesterday.getTime());
Calendar tomorow = (Calendar)today.clone();
tomorow.add(Calendar.DATE, 1);
System.out.println("Tomorow will be " + tomorow.getTime());
}
}
A typical output would be
Today is Tue Jul 01 10:44:18 BRT 2008
Yesterday was Mon Jun 30 10:44:18 BRT 2008
Tomorow will be Wed Jul 02 10:44:18 BRT 2008
Integer.MAX_VALUE and Integer.MIN_VALUE
Posted April 11th, 2008 in UncategorizedYou should know that variable values are cyclic in Java.
public class Test{
public static void main(String args[]){
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
int x = Integer.MAX_VALUE + 1;
System.out.println(x);
}
}
This produces:
2147483647
-2147483648
-2147483648
NumberFormatException Example
Posted March 21st, 2008 in englishNumberFormatException: Thrown to indicate that the application has attempted to convert a string to one of the numeric types, but that the string does not have the appropriate format.
An simple example:
public class SummationExample {
public static void main(String args[]){
int sum = 0;
for(String arg: args){
System.out.println("+" + arg);
sum += Integer.parseInt(arg);
}
System.out.println("= " + sum);
}
}
$ javac SummationExample.java
$ java SummationExample 1 2 3 4 5
+1
+2
+3
+4
+5
= 15
but
$ java SummationExample 1 2 3 4 five
+1
+2
+3
+4
+five
Exception in thread “main” java.lang.NumberFormatException: For input string: “five”
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:447)
at java.lang.Integer.parseInt(Integer.java:497)
at SummationExample.main(SummationExample.java:6)
So
public class SummationExample {
public static void main(String args[]){
int sum = 0;
for(String arg: args){
try {
sum += Integer.parseInt(arg);
System.out.println("+" + arg);
} catch (NumberFormatException e) {
// nothing
}
}
System.out.println("= " + sum);
}
}
now
$ javac BetterSummationExample.java
$ java BetterSummationExample 1 2 3 4 5
+1
+2
+3
+4
+5
= 15
and also
$ java BetterSummationExample 1 2 3 4 five
+1
+2
+3
+4
= 10

Pointers to functions in C++
Posted March 16th, 2008 in englishI need to implements some codes in C++. Just remembering some concepts like pointers to functions.
A simple example:
#include <stdlib.h>
#include <iostream>
using namespace std;
double evalFunction(double (*f)(double), double param){
return f(param);
}
double function(double x){
return x/2;
}
int main(int argc, char** argv) {
cout << function(5.0) << endl;
cout << evalFunction(function, 5.0) << endl;
return (EXIT_SUCCESS);
}
Simple Java Chronometer
Posted March 15th, 2008 in englishA very simple Java chronometer code (inspired in the chronometer code in Opale project) you can use for simples measures.
In the main method there’s a example of use.
public final class Chronometer{
private long begin, end;
public void start(){
begin = System.currentTimeMillis();
}
public void stop(){
end = System.currentTimeMillis();
}
public long getTime() {
return end-begin;
}
public long getMilliseconds() {
return end-begin;
}
public double getSeconds() {
return (end - begin) / 1000.0;
}
public double getMinutes() {
return (end - begin) / 60000.0;
}
public double getHours() {
return (end - begin) / 3600000.0;
}
public static void main(String[] arg) {
Chronometer ch = new Chronometer();
ch.start();
for (int i = 1;i<10000000;i++) {}
ch.stop();
System.out.println(ch.getTime());
ch.start();
for (int i = 10000000;i>0;i--) {}
ch.stop();
System.out.println(ch.getTime());
}
}
Compiling and running this code gives you something like:
191
12
Maybe you got surprised with this. The first loop, with 10 millions of steps is slower than the second, also with 10 millions of steps.
Why?
Some processors (like x86) have an zero-flag in their ALU. Using it is faster perform the question i≠0 than i<K (for a K≠0). In a loop with 10 millions iterations this difference can be perceptible. And this is not just for Java. You can try those loops in others language and see this behavior.
Think twice next time you write a big loop. ![]()
Silveira’s Blog is proudly and spiffily powered by WordPress. Spiffty theme by Noel Cower.









