we can use the java.util.Calendar class. First, create a Calendar
object and set it's time with a Data object. Next, check what day of
the week it is and decrement it accordingly to the previous weekday.
Finally, create a new Date object with the Calendar's getTime()
method.
Get Previous Business Day Date Object in Java - Example Code
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; //Java 1.4+ Compatible // // The following example code demonstrates how to determine // the next business day given a Date object. public class GetPreviousBusinessDay { public static void main(String[] args) { Date today = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(today); int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); if (dayOfWeek == Calendar.MONDAY) { calendar.add(Calendar.DATE, -3); } else if (dayOfWeek == Calendar.SUNDAY) { calendar.add(Calendar.DATE, -2); } else { calendar.add(Calendar.DATE, -1); } Date previousBusinessDay = calendar.getTime(); DateFormat sdf = new SimpleDateFormat("EEEE"); System.out.println("Today : " + sdf.format(today)); System.out.println("Previous business day: " + sdf.format(previousBusinessDay)); } }
Here is the output of the example code:
Today : Tuesday Previous business day: Monday
2 comments:
what about national holidays ?
The business days - mon thru Fri, are always business days somewhere. To account for a nation's holidays, you'd have to create a custom calendar and account for the holidays, since the JRE doesn't have this information.
Post a Comment