比如今天是2009年3月24号,
那本月第一天就是: 今天的年 + 月 + 01
本月的最后一天就是:(本月第一天)加1月减1天
明白了?
日期的加减可以用类Calendar实现
本月的开始时间,就是年朋+01
结束时间,简单一点就是下月1号减1天
java获取应用的运行时间,可以利用时间差来获得,使用SystemcurrentTimeMillis()该方法获得此时的时间,代码如下:
package comqiulinhe;import javatextParseException;
public class Ceshi {
public static void main(String[] args) throws ParseException {
double begin = SystemcurrentTimeMillis(); // 程序开始时间,调用系统的当前时间
for (int i = 0; i < 10000; i++) {
// 这里执行具体的业务逻辑
Systemoutprintln(i);
}
// 你要运行的程序
double end = SystemcurrentTimeMillis(); // 程序结束时间,调用系统当前时间
double time = end - begin;// 程序的运行时间
Systemoutprintln(time / 60 + "秒");
}
}
运行结果如下:
思路:首先是获取该月的实际天数,然后从1号遍历直至该月最后一天,利用Calendar类找出该日是一周中的第几天,
(1)若该日是周日,则视为一周结束,并用该日期减去6找到该周的开始日期,若相减结果小于等于1,则说明该周起始日期应该是本月1号。
(1)若该日不是周日,且是该月最后一天,则应该在上面计算的基础上再加一周,视月末为该周的结束日,该周起始日期应为改日期减去改日
在一周中的位置加2,例如:2013-09-30号是周一,则视为9月份中的第六周,开始日期是30-2+2
提示:Calendar 类中视周日为一周的开始,值是1
示例代码:
[java] view plain copy
public static void printfWeeks(String date) throws Exception {
// String date = "2013-09";
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
Date date1 = dateFormatparse(date);
Calendar calendar = new GregorianCalendar();
calendarsetTime(date1);
int days = calendargetActualMaximum(CalendarDAY_OF_MONTH);
Systemoutprintln("days:" + days);
int count = 0;
for (int i = 1; i <= days; i++) {
DateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
Date date2 = dateFormat1parse(date + "-" + i);
calendarclear();
calendarsetTime(date2);
int k = new Integer(calendarget(CalendarDAY_OF_WEEK));
if (k == 1) {// 若当天是周日
count++;
Systemoutprintln("-----------------------------------");
Systemoutprintln("第" + count + "周");
if (i - 6 <= 1) {
Systemoutprintln("本周开始日期:" + date + "-" + 1);
} else {
Systemoutprintln("本周开始日期:" + date + "-" + (i - 6));
}
Systemoutprintln("本周结束日期:" + date + "-" + i);
Systemoutprintln("-----------------------------------");
}
if (k != 1 && i == days) {// 若是本月最好一天,且不是周日
count++;
Systemoutprintln("-----------------------------------");
Systemoutprintln("第" + count + "周");
Systemoutprintln("本周开始日期:" + date + "-" + (i - k + 2));
Systemoutprintln("本周结束日期:" + date + "-" + i);
Systemoutprintln("-----------------------------------");
}
}
}
测试代码:
[java] view plain copy
public static void main(String[] args) throws Exception {
String s = "2013-";
for (int i = 1; i <= 12; i++) {
Systemoutprintln("");
Systemoutprintln("月份:" + i);
printfWeeks(s + i);
Systemoutprintln("");
}
// printfWeeks(s + 2);
}
java获取当前时间精确到毫秒
new SimpleDateFormat("yyyyMMddHHmmssSSS") format(new Date() );
方法2:
Calendar Cld = CalendargetInstance();
int YY = Cldget(CalendarYEAR) ;
int MM = Cldget(CalendarMONTH)+1;
int DD = Cldget(CalendarDATE);
int HH = Cldget(CalendarHOUR_OF_DAY);
int mm = Cldget(CalendarMINUTE);
int SS = Cldget(CalendarSECOND);
int MI = Cldget(CalendarMILLISECOND);
String curTime = YY + MM + DD + HH + mm + SS + MI;
Calendar cal = CalendargetInstance();
javautilDate date = calgetTime();
SimpleDateFormat sdFormat = new SimpleDateFormat("yyyyMMddhhmmssSSS");
String myTime = sdFormatformat(currentTime);
以上就是关于如何在java中得到本月的开始和结束时间(天)全部的内容,包括:如何在java中得到本月的开始和结束时间(天)、java 如何获取应用的运行时间、java中如何计算本周开始和结束的日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)