date/time Question

I have:

public String getTotalTime(){
            DecimalFormat df = new DecimalFormat();
            return df.format(((this.getDateTill().getTime() - this.getDateFrom().getTime()) / 1000 / 3600) - this.getBreak());
}

if i have:

dateTill =10:00  (DATE format)
dateFrom =14:00  (DATE format)
break = 0.25  (FLOAT format)

i get the totalTime as: 3,75    (i need it to be 3.35 or 3:35)

How can i do it?  Thanks.
jaggybala1Asked:
Who is Participating?
 
zzynxSoftware engineerCommented:
So in fact this simply asnwers you question, right?
;°)

public String getTotalTime(){
          DecimalFormat df = new DecimalFormat();
          DecimalFormatSymbols dfs = new DecimalFormatSymbols();
          dfs.setDecimalSeparator('.');
          fmt.setDecimalFormatSymbols(dfs);
          return df.format(((this.getDateTill().getTime() - this.getDateFrom().getTime()) / 1000 / 3600) - this.getBreak());
}

Remark: sure you want to overrule number formatting corresponding with the user's locale?
0
 
armoghanCommented:
use SimpleDateFormat
0
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
jaggybala1Author Commented:
if i use SimpleDateFormat, can i use float value of 'break' ?

could you please tell me how should i code for DATE with FLOAT using SimpleDateFormat ?
0
 
jaggybala1Author Commented:
PS: I have been restricted only to use FLOAT for 'break' field.
0
 
armoghanCommented:
Make it a calender object and subtract the time from its minutes and then get the format
0
 
armoghanCommented:
Calendar cal = Calendar.getInstance();
cal.setTime(someDateObject)
cal.set(Calendar.MINUTE, cal.get(Calendar.MINUTE) - this.getBreak());

cal.getTime();


This is kind of pseudo code
0
 
zzynxSoftware engineerCommented:
>> (i need it to be 3.35 or 3:35)
Sure?

Doesn't a break of 0.25 stand for one quarter?
Then 4h - 1 quarter = 3:45
0
 
zzynxSoftware engineerCommented:
Why not just some maths:

public String getTotalTime(){

    long brutoDiff = (this.getDateTill().getTimeInMillis() - this.getDateFrom().getTimeInMillis())/1000;  // in seconds
    long breakDiff = (long)(3600.0*this.getBreak);  // in seconds
    long difference = brutoDiff - breakDiff;  // in seconds
    long hours = difference / 3600;
    long minutes = ( difference - (hours * 3600) ) / 60;
    return hours + ":" + minutes;   // returns "3:45" in your example
}
0
 
zzynxSoftware engineerCommented:
Oh, 0.25 stands for 25 minutes?
Then replace in the above

       long breakDiff = (long)(3600.0*this.getBreak);  // in seconds
by
       long breakDiff = (long)(6000.0*breakTime);  // in seconds


Then it returns "3:35"
0
 
jaggybala1Author Commented:
Actually, i see that:

>> Doesn't a break of 0.25 stand for one quarter?
>> Then 4h - 1 quarter = 3:45

is right!

but i get the totalTime as: 3,75

how can i get it as 3.75

Thanks.
0
 
zzynxSoftware engineerCommented:
>> i get the totalTime as: 3,75
>> how can i get it as 3.75

Don't see the difference...
0
 
zzynxSoftware engineerCommented:
Oh, you want to be sure you always have a point (instead of a colon in your locale)?
Is it that?

public String getTotalTime(){

    long brutoDiff = (this.getDateTill().getTimeInMillis() - this.getDateFrom().getTimeInMillis())/1000;  // in seconds
    long breakDiff = (long)(3600.0*this.getBreak);  // in seconds
    long difference = brutoDiff - breakDiff;  // in seconds
    long hours = difference / 3600;
    long minutes = ( difference - (hours * 3600) ) / 60;
    float result = (float)hours + (float)minutes/60.0F;

    DecimalFormatSymbols dfs = new DecimalFormatSymbols();
    dfs.setDecimalSeparator('.');
    java.text.DecimalFormat fmt = new DecimalFormat();
    fmt.setDecimalFormatSymbols(dfs);
    return fmt.format(result);     // returns "3.75" in your case
}
0
 
MogalManicCommented:
You need to split the time into seperate Hours/minutes/seconds then format them into a string.  See if this thread helps:
http://www.experts-exchange.com/Programming/Programming_Languages/Java/Q_21134849.html
0
 
zzynxSoftware engineerCommented:
Thanks for accepting
0
 
armoghanCommented:
Thanks :)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.