- 浏览: 138680 次
- 性别:
- 来自: 合肥
文章分类
最新评论
-
tjg138:
many thanks!!!!!
Hibernate QBC查询 -
tjg138:
Criteria criteria=session.creat ...
Hibernate QBC查询 -
wa114d:
能不能把你源码放上啊,谢谢啊
Javamail -
cfyme:
重构过的代码 我去运行 怎么也执行不到EmailRunner中 ...
Javamail -
cfyme:
大师,你有没有源文件 你上传附件不是正确的
Javamail
1. package com.hefeng.test;
2.
3.
4. import java.text.DateFormat;
5. import java.text.ParsePosition;
6. import java.text.SimpleDateFormat;
7. import java.util.Calendar;
8. import java.util.Date;
9. import java.util.GregorianCalendar;
10.
11. public class TimeTest {
12. //用来全局控制 上一周,本周,下一周的周数变化
13. private int weeks = 0;
14. private int MaxDate;//一月最大天数
15. private int MaxYear;//一年最大天数
16.
17.
18. /**
19. * @param args
20. */
21. public static void main(String[] args) {
22. TimeTest tt = new TimeTest();
23. System.out.println("获取当天日期:"+tt.getNowTime("yyyy-MM-dd"));
24. System.out.println("获取本周一日期:"+tt.getMondayOFWeek());
25. System.out.println("获取本周日的日期~:"+tt.getCurrentWeekday());
26. System.out.println("获取上周一日期:"+tt.getPreviousWeekday());
27. System.out.println("获取上周日日期:"+tt.getPreviousWeekSunday());
28. System.out.println("获取下周一日期:"+tt.getNextMonday());
29. System.out.println("获取下周日日期:"+tt.getNextSunday());
30. System.out.println("获得相应周的周六的日期:"+tt.getNowTime("yyyy-MM-dd"));
31. System.out.println("获取本月第一天日期:"+tt.getFirstDayOfMonth());
32. System.out.println("获取本月最后一天日期:"+tt.getDefaultDay());
33. System.out.println("获取上月第一天日期:"+tt.getPreviousMonthFirst());
34. System.out.println("获取上月最后一天的日期:"+tt.getPreviousMonthEnd());
35. System.out.println("获取下月第一天日期:"+tt.getNextMonthFirst());
36. System.out.println("获取下月最后一天日期:"+tt.getNextMonthEnd());
37. System.out.println("获取本年的第一天日期:"+tt.getCurrentYearFirst());
38. System.out.println("获取本年最后一天日期:"+tt.getCurrentYearEnd());
39. System.out.println("获取去年的第一天日期:"+tt.getPreviousYearFirst());
40. System.out.println("获取去年的最后一天日期:"+tt.getPreviousYearEnd());
41. System.out.println("获取明年第一天日期:"+tt.getNextYearFirst());
42. System.out.println("获取明年最后一天日期:"+tt.getNextYearEnd());
43. System.out.println("获取本季度第一天到最后一天:"+tt.getThisSeasonTime(11));
44. System.out.println("获取两个日期之间间隔天数2008-12-1~2008-9.29:"+TimeTest.getTwoDay("2008-12-1","2008-9-29"));
45. }
46.
47.
48. /**
49. * 得到二个日期间的间隔天数
50. */
51. public static String getTwoDay(String sj1, String sj2) {
52. SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
53. long day = 0;
54. try {
55. java.util.Date date = myFormatter.parse(sj1);
56. java.util.Date mydate = myFormatter.parse(sj2);
57. day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
58. } catch (Exception e) {
59. return "";
60. }
61. return day + "";
62. }
63.
64.
65. /**
66. * 根据一个日期,返回是星期几的字符串
67. *
68. * @param sdate
69. * @return
70. */
71. public static String getWeek(String sdate) {
72. // 再转换为时间
73. Date date = TimeTest.strToDate(sdate);
74. Calendar c = Calendar.getInstance();
75. c.setTime(date);
76. // int hour=c.get(Calendar.DAY_OF_WEEK);
77. // hour中存的就是星期几了,其范围 1~7
78. // 1=星期日 7=星期六,其他类推
79. return new SimpleDateFormat("EEEE").format(c.getTime());
80. }
81.
82. /**
83. * 将短时间格式字符串转换为时间 yyyy-MM-dd
84. *
85. * @param strDate
86. * @return
87. */
88. public static Date strToDate(String strDate) {
89. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
90. ParsePosition pos = new ParsePosition(0);
91. Date strtodate = formatter.parse(strDate, pos);
92. return strtodate;
93. }
94.
95. /**
96. * 两个时间之间的天数
97. *
98. * @param date1
99. * @param date2
100. * @return
101. */
102. public static long getDays(String date1, String date2) {
103. if (date1 == null || date1.equals(""))
104. return 0;
105. if (date2 == null || date2.equals(""))
106. return 0;
107. // 转换为标准时间
108. SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
109. java.util.Date date = null;
110. java.util.Date mydate = null;
111. try {
112. date = myFormatter.parse(date1);
113. mydate = myFormatter.parse(date2);
114. } catch (Exception e) {
115. }
116. long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
117. return day;
118. }
119.
120.
121.
122.
123. // 计算当月最后一天,返回字符串
124. public String getDefaultDay(){
125. String str = "";
126. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
127.
128. Calendar lastDate = Calendar.getInstance();
129. lastDate.set(Calendar.DATE,1);//设为当前月的1号
130. lastDate.add(Calendar.MONTH,1);//加一个月,变为下月的1号
131. lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天
132.
133. str=sdf.format(lastDate.getTime());
134. return str;
135. }
136.
137. // 上月第一天
138. public String getPreviousMonthFirst(){
139. String str = "";
140. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
141.
142. Calendar lastDate = Calendar.getInstance();
143. lastDate.set(Calendar.DATE,1);//设为当前月的1号
144. lastDate.add(Calendar.MONTH,-1);//减一个月,变为下月的1号
145. //lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天
146.
147. str=sdf.format(lastDate.getTime());
148. return str;
149. }
150.
151. //获取当月第一天
152. public String getFirstDayOfMonth(){
153. String str = "";
154. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
155.
156. Calendar lastDate = Calendar.getInstance();
157. lastDate.set(Calendar.DATE,1);//设为当前月的1号
158. str=sdf.format(lastDate.getTime());
159. return str;
160. }
161.
162. // 获得本周星期日的日期
163. public String getCurrentWeekday() {
164. weeks = 0;
165. int mondayPlus = this.getMondayPlus();
166. GregorianCalendar currentDate = new GregorianCalendar();
167. currentDate.add(GregorianCalendar.DATE, mondayPlus+6);
168. Date monday = currentDate.getTime();
169.
170. DateFormat df = DateFormat.getDateInstance();
171. String preMonday = df.format(monday);
172. return preMonday;
173. }
174.
175.
176. //获取当天时间
177. public String getNowTime(String dateformat){
178. Date now = new Date();
179. SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);//可以方便地修改日期格式
180. String hehe = dateFormat.format(now);
181. return hehe;
182. }
183.
184. // 获得当前日期与本周日相差的天数
185. private int getMondayPlus() {
186. Calendar cd = Calendar.getInstance();
187. // 获得今天是一周的第几天,星期日是第一天,星期二是第二天......
188. int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK)-1; //因为按中国礼拜一作为第一天所以这里减1
189. if (dayOfWeek == 1) {
190. return 0;
191. } else {
192. return 1 - dayOfWeek;
193. }
194. }
195.
196. //获得本周一的日期
197. public String getMondayOFWeek(){
198. weeks = 0;
199. int mondayPlus = this.getMondayPlus();
200. GregorianCalendar currentDate = new GregorianCalendar();
201. currentDate.add(GregorianCalendar.DATE, mondayPlus);
202. Date monday = currentDate.getTime();
203.
204. DateFormat df = DateFormat.getDateInstance();
205. String preMonday = df.format(monday);
206. return preMonday;
207. }
208.
209. //获得相应周的周六的日期
210. public String getSaturday() {
211. int mondayPlus = this.getMondayPlus();
212. GregorianCalendar currentDate = new GregorianCalendar();
213. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks + 6);
214. Date monday = currentDate.getTime();
215. DateFormat df = DateFormat.getDateInstance();
216. String preMonday = df.format(monday);
217. return preMonday;
218. }
219.
220. // 获得上周星期日的日期
221. public String getPreviousWeekSunday() {
222. weeks=0;
223. weeks--;
224. int mondayPlus = this.getMondayPlus();
225. GregorianCalendar currentDate = new GregorianCalendar();
226. currentDate.add(GregorianCalendar.DATE, mondayPlus+weeks);
227. Date monday = currentDate.getTime();
228. DateFormat df = DateFormat.getDateInstance();
229. String preMonday = df.format(monday);
230. return preMonday;
231. }
232.
233. // 获得上周星期一的日期
234. public String getPreviousWeekday() {
235. weeks--;
236. int mondayPlus = this.getMondayPlus();
237. GregorianCalendar currentDate = new GregorianCalendar();
238. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);
239. Date monday = currentDate.getTime();
240. DateFormat df = DateFormat.getDateInstance();
241. String preMonday = df.format(monday);
242. return preMonday;
243. }
244.
245. // 获得下周星期一的日期
246. public String getNextMonday() {
247. weeks++;
248. int mondayPlus = this.getMondayPlus();
249. GregorianCalendar currentDate = new GregorianCalendar();
250. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7);
251. Date monday = currentDate.getTime();
252. DateFormat df = DateFormat.getDateInstance();
253. String preMonday = df.format(monday);
254. return preMonday;
255. }
256.
257. // 获得下周星期日的日期
258. public String getNextSunday() {
259.
260. int mondayPlus = this.getMondayPlus();
261. GregorianCalendar currentDate = new GregorianCalendar();
262. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7+6);
263. Date monday = currentDate.getTime();
264. DateFormat df = DateFormat.getDateInstance();
265. String preMonday = df.format(monday);
266. return preMonday;
267. }
268.
269.
270.
271. private int getMonthPlus(){
272. Calendar cd = Calendar.getInstance();
273. int monthOfNumber = cd.get(Calendar.DAY_OF_MONTH);
274. cd.set(Calendar.DATE, 1);//把日期设置为当月第一天
275. cd.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天
276. MaxDate=cd.get(Calendar.DATE);
277. if(monthOfNumber == 1){
278. return -MaxDate;
279. }else{
280. return 1-monthOfNumber;
281. }
282. }
283.
284. //获得上月最后一天的日期
285. public String getPreviousMonthEnd(){
286. String str = "";
287. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
288.
289. Calendar lastDate = Calendar.getInstance();
290. lastDate.add(Calendar.MONTH,-1);//减一个月
291. lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天
292. lastDate.roll(Calendar.DATE, -1);//日期回滚一天,也就是本月最后一天
293. str=sdf.format(lastDate.getTime());
294. return str;
295. }
296.
297. //获得下个月第一天的日期
298. public String getNextMonthFirst(){
299. String str = "";
300. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
301.
302. Calendar lastDate = Calendar.getInstance();
303. lastDate.add(Calendar.MONTH,1);//减一个月
304. lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天
305. str=sdf.format(lastDate.getTime());
306. return str;
307. }
308.
309. //获得下个月最后一天的日期
310. public String getNextMonthEnd(){
311. String str = "";
312. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
313.
314. Calendar lastDate = Calendar.getInstance();
315. lastDate.add(Calendar.MONTH,1);//加一个月
316. lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天
317. lastDate.roll(Calendar.DATE, -1);//日期回滚一天,也就是本月最后一天
318. str=sdf.format(lastDate.getTime());
319. return str;
320. }
321.
322. //获得明年最后一天的日期
323. public String getNextYearEnd(){
324. String str = "";
325. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
326.
327. Calendar lastDate = Calendar.getInstance();
328. lastDate.add(Calendar.YEAR,1);//加一个年
329. lastDate.set(Calendar.DAY_OF_YEAR, 1);
330. lastDate.roll(Calendar.DAY_OF_YEAR, -1);
331. str=sdf.format(lastDate.getTime());
332. return str;
333. }
334.
335. //获得明年第一天的日期
336. public String getNextYearFirst(){
337. String str = "";
338. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
339.
340. Calendar lastDate = Calendar.getInstance();
341. lastDate.add(Calendar.YEAR,1);//加一个年
342. lastDate.set(Calendar.DAY_OF_YEAR, 1);
343. str=sdf.format(lastDate.getTime());
344. return str;
345.
346. }
347.
348. //获得本年有多少天
349. private int getMaxYear(){
350. Calendar cd = Calendar.getInstance();
351. cd.set(Calendar.DAY_OF_YEAR,1);//把日期设为当年第一天
352. cd.roll(Calendar.DAY_OF_YEAR,-1);//把日期回滚一天。
353. int MaxYear = cd.get(Calendar.DAY_OF_YEAR);
354. return MaxYear;
355. }
356.
357. private int getYearPlus(){
358. Calendar cd = Calendar.getInstance();
359. int yearOfNumber = cd.get(Calendar.DAY_OF_YEAR);//获得当天是一年中的第几天
360. cd.set(Calendar.DAY_OF_YEAR,1);//把日期设为当年第一天
361. cd.roll(Calendar.DAY_OF_YEAR,-1);//把日期回滚一天。
362. int MaxYear = cd.get(Calendar.DAY_OF_YEAR);
363. if(yearOfNumber == 1){
364. return -MaxYear;
365. }else{
366. return 1-yearOfNumber;
367. }
368. }
369. //获得本年第一天的日期
370. public String getCurrentYearFirst(){
371. int yearPlus = this.getYearPlus();
372. GregorianCalendar currentDate = new GregorianCalendar();
373. currentDate.add(GregorianCalendar.DATE,yearPlus);
374. Date yearDay = currentDate.getTime();
375. DateFormat df = DateFormat.getDateInstance();
376. String preYearDay = df.format(yearDay);
377. return preYearDay;
378. }
379.
380.
381. //获得本年最后一天的日期 *
382. public String getCurrentYearEnd(){
383. Date date = new Date();
384. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");//可以方便地修改日期格式
385. String years = dateFormat.format(date);
386. return years+"-12-31";
387. }
388.
389.
390. //获得上年第一天的日期 *
391. public String getPreviousYearFirst(){
392. Date date = new Date();
393. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");//可以方便地修改日期格式
394. String years = dateFormat.format(date); int years_value = Integer.parseInt(years);
395. years_value--;
396. return years_value+"-1-1";
397. }
398.
399. //获得上年最后一天的日期
400. public String getPreviousYearEnd(){
401. weeks--;
402. int yearPlus = this.getYearPlus();
403. GregorianCalendar currentDate = new GregorianCalendar();
404. currentDate.add(GregorianCalendar.DATE,yearPlus+MaxYear*weeks+(MaxYear-1));
405. Date yearDay = currentDate.getTime();
406. DateFormat df = DateFormat.getDateInstance();
407. String preYearDay = df.format(yearDay);
408. getThisSeasonTime(11);
409. return preYearDay;
410. }
411.
412. //获得本季度
413. public String getThisSeasonTime(int month){
414. int array[][] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
415. int season = 1;
416. if(month>=1&&month<=3){
417. season = 1;
418. }
419. if(month>=4&&month<=6){
420. season = 2;
421. }
422. if(month>=7&&month<=9){
423. season = 3;
424. }
425. if(month>=10&&month<=12){
426. season = 4;
427. }
428. int start_month = array[season-1][0];
429. int end_month = array[season-1][2];
430.
431. Date date = new Date();
432. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");//可以方便地修改日期格式
433. String years = dateFormat.format(date);
434. int years_value = Integer.parseInt(years);
435.
436. int start_days =1;//years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);
437. int end_days = getLastDayOfMonth(years_value,end_month);
438. String seasonDate = years_value+"-"+start_month+"-"+start_days+";"+years_value+"-"+end_month+"-"+end_days;
439. return seasonDate;
440.
441. }
442.
443. /**
444. * 获取某年某月的最后一天
445. * @param year 年
446. * @param month 月
447. * @return 最后一天
448. */
449. private int getLastDayOfMonth(int year, int month) {
450. if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8
451. || month == 10 || month == 12) {
452. return 31;
453. }
454. if (month == 4 || month == 6 || month == 9 || month == 11) {
455. return 30;
456. }
457. if (month == 2) {
458. if (isLeapYear(year)) {
459. return 29;
460. } else {
461. return 28;
462. }
463. }
464. return 0;
465. }
466. /**
467. * 是否闰年
468. * @param year 年
469. * @return
470. */
471. public boolean isLeapYear(int year) {
472. return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
473. }
474. }
2.
3.
4. import java.text.DateFormat;
5. import java.text.ParsePosition;
6. import java.text.SimpleDateFormat;
7. import java.util.Calendar;
8. import java.util.Date;
9. import java.util.GregorianCalendar;
10.
11. public class TimeTest {
12. //用来全局控制 上一周,本周,下一周的周数变化
13. private int weeks = 0;
14. private int MaxDate;//一月最大天数
15. private int MaxYear;//一年最大天数
16.
17.
18. /**
19. * @param args
20. */
21. public static void main(String[] args) {
22. TimeTest tt = new TimeTest();
23. System.out.println("获取当天日期:"+tt.getNowTime("yyyy-MM-dd"));
24. System.out.println("获取本周一日期:"+tt.getMondayOFWeek());
25. System.out.println("获取本周日的日期~:"+tt.getCurrentWeekday());
26. System.out.println("获取上周一日期:"+tt.getPreviousWeekday());
27. System.out.println("获取上周日日期:"+tt.getPreviousWeekSunday());
28. System.out.println("获取下周一日期:"+tt.getNextMonday());
29. System.out.println("获取下周日日期:"+tt.getNextSunday());
30. System.out.println("获得相应周的周六的日期:"+tt.getNowTime("yyyy-MM-dd"));
31. System.out.println("获取本月第一天日期:"+tt.getFirstDayOfMonth());
32. System.out.println("获取本月最后一天日期:"+tt.getDefaultDay());
33. System.out.println("获取上月第一天日期:"+tt.getPreviousMonthFirst());
34. System.out.println("获取上月最后一天的日期:"+tt.getPreviousMonthEnd());
35. System.out.println("获取下月第一天日期:"+tt.getNextMonthFirst());
36. System.out.println("获取下月最后一天日期:"+tt.getNextMonthEnd());
37. System.out.println("获取本年的第一天日期:"+tt.getCurrentYearFirst());
38. System.out.println("获取本年最后一天日期:"+tt.getCurrentYearEnd());
39. System.out.println("获取去年的第一天日期:"+tt.getPreviousYearFirst());
40. System.out.println("获取去年的最后一天日期:"+tt.getPreviousYearEnd());
41. System.out.println("获取明年第一天日期:"+tt.getNextYearFirst());
42. System.out.println("获取明年最后一天日期:"+tt.getNextYearEnd());
43. System.out.println("获取本季度第一天到最后一天:"+tt.getThisSeasonTime(11));
44. System.out.println("获取两个日期之间间隔天数2008-12-1~2008-9.29:"+TimeTest.getTwoDay("2008-12-1","2008-9-29"));
45. }
46.
47.
48. /**
49. * 得到二个日期间的间隔天数
50. */
51. public static String getTwoDay(String sj1, String sj2) {
52. SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
53. long day = 0;
54. try {
55. java.util.Date date = myFormatter.parse(sj1);
56. java.util.Date mydate = myFormatter.parse(sj2);
57. day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
58. } catch (Exception e) {
59. return "";
60. }
61. return day + "";
62. }
63.
64.
65. /**
66. * 根据一个日期,返回是星期几的字符串
67. *
68. * @param sdate
69. * @return
70. */
71. public static String getWeek(String sdate) {
72. // 再转换为时间
73. Date date = TimeTest.strToDate(sdate);
74. Calendar c = Calendar.getInstance();
75. c.setTime(date);
76. // int hour=c.get(Calendar.DAY_OF_WEEK);
77. // hour中存的就是星期几了,其范围 1~7
78. // 1=星期日 7=星期六,其他类推
79. return new SimpleDateFormat("EEEE").format(c.getTime());
80. }
81.
82. /**
83. * 将短时间格式字符串转换为时间 yyyy-MM-dd
84. *
85. * @param strDate
86. * @return
87. */
88. public static Date strToDate(String strDate) {
89. SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
90. ParsePosition pos = new ParsePosition(0);
91. Date strtodate = formatter.parse(strDate, pos);
92. return strtodate;
93. }
94.
95. /**
96. * 两个时间之间的天数
97. *
98. * @param date1
99. * @param date2
100. * @return
101. */
102. public static long getDays(String date1, String date2) {
103. if (date1 == null || date1.equals(""))
104. return 0;
105. if (date2 == null || date2.equals(""))
106. return 0;
107. // 转换为标准时间
108. SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");
109. java.util.Date date = null;
110. java.util.Date mydate = null;
111. try {
112. date = myFormatter.parse(date1);
113. mydate = myFormatter.parse(date2);
114. } catch (Exception e) {
115. }
116. long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);
117. return day;
118. }
119.
120.
121.
122.
123. // 计算当月最后一天,返回字符串
124. public String getDefaultDay(){
125. String str = "";
126. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
127.
128. Calendar lastDate = Calendar.getInstance();
129. lastDate.set(Calendar.DATE,1);//设为当前月的1号
130. lastDate.add(Calendar.MONTH,1);//加一个月,变为下月的1号
131. lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天
132.
133. str=sdf.format(lastDate.getTime());
134. return str;
135. }
136.
137. // 上月第一天
138. public String getPreviousMonthFirst(){
139. String str = "";
140. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
141.
142. Calendar lastDate = Calendar.getInstance();
143. lastDate.set(Calendar.DATE,1);//设为当前月的1号
144. lastDate.add(Calendar.MONTH,-1);//减一个月,变为下月的1号
145. //lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天
146.
147. str=sdf.format(lastDate.getTime());
148. return str;
149. }
150.
151. //获取当月第一天
152. public String getFirstDayOfMonth(){
153. String str = "";
154. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
155.
156. Calendar lastDate = Calendar.getInstance();
157. lastDate.set(Calendar.DATE,1);//设为当前月的1号
158. str=sdf.format(lastDate.getTime());
159. return str;
160. }
161.
162. // 获得本周星期日的日期
163. public String getCurrentWeekday() {
164. weeks = 0;
165. int mondayPlus = this.getMondayPlus();
166. GregorianCalendar currentDate = new GregorianCalendar();
167. currentDate.add(GregorianCalendar.DATE, mondayPlus+6);
168. Date monday = currentDate.getTime();
169.
170. DateFormat df = DateFormat.getDateInstance();
171. String preMonday = df.format(monday);
172. return preMonday;
173. }
174.
175.
176. //获取当天时间
177. public String getNowTime(String dateformat){
178. Date now = new Date();
179. SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);//可以方便地修改日期格式
180. String hehe = dateFormat.format(now);
181. return hehe;
182. }
183.
184. // 获得当前日期与本周日相差的天数
185. private int getMondayPlus() {
186. Calendar cd = Calendar.getInstance();
187. // 获得今天是一周的第几天,星期日是第一天,星期二是第二天......
188. int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK)-1; //因为按中国礼拜一作为第一天所以这里减1
189. if (dayOfWeek == 1) {
190. return 0;
191. } else {
192. return 1 - dayOfWeek;
193. }
194. }
195.
196. //获得本周一的日期
197. public String getMondayOFWeek(){
198. weeks = 0;
199. int mondayPlus = this.getMondayPlus();
200. GregorianCalendar currentDate = new GregorianCalendar();
201. currentDate.add(GregorianCalendar.DATE, mondayPlus);
202. Date monday = currentDate.getTime();
203.
204. DateFormat df = DateFormat.getDateInstance();
205. String preMonday = df.format(monday);
206. return preMonday;
207. }
208.
209. //获得相应周的周六的日期
210. public String getSaturday() {
211. int mondayPlus = this.getMondayPlus();
212. GregorianCalendar currentDate = new GregorianCalendar();
213. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks + 6);
214. Date monday = currentDate.getTime();
215. DateFormat df = DateFormat.getDateInstance();
216. String preMonday = df.format(monday);
217. return preMonday;
218. }
219.
220. // 获得上周星期日的日期
221. public String getPreviousWeekSunday() {
222. weeks=0;
223. weeks--;
224. int mondayPlus = this.getMondayPlus();
225. GregorianCalendar currentDate = new GregorianCalendar();
226. currentDate.add(GregorianCalendar.DATE, mondayPlus+weeks);
227. Date monday = currentDate.getTime();
228. DateFormat df = DateFormat.getDateInstance();
229. String preMonday = df.format(monday);
230. return preMonday;
231. }
232.
233. // 获得上周星期一的日期
234. public String getPreviousWeekday() {
235. weeks--;
236. int mondayPlus = this.getMondayPlus();
237. GregorianCalendar currentDate = new GregorianCalendar();
238. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks);
239. Date monday = currentDate.getTime();
240. DateFormat df = DateFormat.getDateInstance();
241. String preMonday = df.format(monday);
242. return preMonday;
243. }
244.
245. // 获得下周星期一的日期
246. public String getNextMonday() {
247. weeks++;
248. int mondayPlus = this.getMondayPlus();
249. GregorianCalendar currentDate = new GregorianCalendar();
250. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7);
251. Date monday = currentDate.getTime();
252. DateFormat df = DateFormat.getDateInstance();
253. String preMonday = df.format(monday);
254. return preMonday;
255. }
256.
257. // 获得下周星期日的日期
258. public String getNextSunday() {
259.
260. int mondayPlus = this.getMondayPlus();
261. GregorianCalendar currentDate = new GregorianCalendar();
262. currentDate.add(GregorianCalendar.DATE, mondayPlus + 7+6);
263. Date monday = currentDate.getTime();
264. DateFormat df = DateFormat.getDateInstance();
265. String preMonday = df.format(monday);
266. return preMonday;
267. }
268.
269.
270.
271. private int getMonthPlus(){
272. Calendar cd = Calendar.getInstance();
273. int monthOfNumber = cd.get(Calendar.DAY_OF_MONTH);
274. cd.set(Calendar.DATE, 1);//把日期设置为当月第一天
275. cd.roll(Calendar.DATE, -1);//日期回滚一天,也就是最后一天
276. MaxDate=cd.get(Calendar.DATE);
277. if(monthOfNumber == 1){
278. return -MaxDate;
279. }else{
280. return 1-monthOfNumber;
281. }
282. }
283.
284. //获得上月最后一天的日期
285. public String getPreviousMonthEnd(){
286. String str = "";
287. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
288.
289. Calendar lastDate = Calendar.getInstance();
290. lastDate.add(Calendar.MONTH,-1);//减一个月
291. lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天
292. lastDate.roll(Calendar.DATE, -1);//日期回滚一天,也就是本月最后一天
293. str=sdf.format(lastDate.getTime());
294. return str;
295. }
296.
297. //获得下个月第一天的日期
298. public String getNextMonthFirst(){
299. String str = "";
300. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
301.
302. Calendar lastDate = Calendar.getInstance();
303. lastDate.add(Calendar.MONTH,1);//减一个月
304. lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天
305. str=sdf.format(lastDate.getTime());
306. return str;
307. }
308.
309. //获得下个月最后一天的日期
310. public String getNextMonthEnd(){
311. String str = "";
312. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
313.
314. Calendar lastDate = Calendar.getInstance();
315. lastDate.add(Calendar.MONTH,1);//加一个月
316. lastDate.set(Calendar.DATE, 1);//把日期设置为当月第一天
317. lastDate.roll(Calendar.DATE, -1);//日期回滚一天,也就是本月最后一天
318. str=sdf.format(lastDate.getTime());
319. return str;
320. }
321.
322. //获得明年最后一天的日期
323. public String getNextYearEnd(){
324. String str = "";
325. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
326.
327. Calendar lastDate = Calendar.getInstance();
328. lastDate.add(Calendar.YEAR,1);//加一个年
329. lastDate.set(Calendar.DAY_OF_YEAR, 1);
330. lastDate.roll(Calendar.DAY_OF_YEAR, -1);
331. str=sdf.format(lastDate.getTime());
332. return str;
333. }
334.
335. //获得明年第一天的日期
336. public String getNextYearFirst(){
337. String str = "";
338. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
339.
340. Calendar lastDate = Calendar.getInstance();
341. lastDate.add(Calendar.YEAR,1);//加一个年
342. lastDate.set(Calendar.DAY_OF_YEAR, 1);
343. str=sdf.format(lastDate.getTime());
344. return str;
345.
346. }
347.
348. //获得本年有多少天
349. private int getMaxYear(){
350. Calendar cd = Calendar.getInstance();
351. cd.set(Calendar.DAY_OF_YEAR,1);//把日期设为当年第一天
352. cd.roll(Calendar.DAY_OF_YEAR,-1);//把日期回滚一天。
353. int MaxYear = cd.get(Calendar.DAY_OF_YEAR);
354. return MaxYear;
355. }
356.
357. private int getYearPlus(){
358. Calendar cd = Calendar.getInstance();
359. int yearOfNumber = cd.get(Calendar.DAY_OF_YEAR);//获得当天是一年中的第几天
360. cd.set(Calendar.DAY_OF_YEAR,1);//把日期设为当年第一天
361. cd.roll(Calendar.DAY_OF_YEAR,-1);//把日期回滚一天。
362. int MaxYear = cd.get(Calendar.DAY_OF_YEAR);
363. if(yearOfNumber == 1){
364. return -MaxYear;
365. }else{
366. return 1-yearOfNumber;
367. }
368. }
369. //获得本年第一天的日期
370. public String getCurrentYearFirst(){
371. int yearPlus = this.getYearPlus();
372. GregorianCalendar currentDate = new GregorianCalendar();
373. currentDate.add(GregorianCalendar.DATE,yearPlus);
374. Date yearDay = currentDate.getTime();
375. DateFormat df = DateFormat.getDateInstance();
376. String preYearDay = df.format(yearDay);
377. return preYearDay;
378. }
379.
380.
381. //获得本年最后一天的日期 *
382. public String getCurrentYearEnd(){
383. Date date = new Date();
384. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");//可以方便地修改日期格式
385. String years = dateFormat.format(date);
386. return years+"-12-31";
387. }
388.
389.
390. //获得上年第一天的日期 *
391. public String getPreviousYearFirst(){
392. Date date = new Date();
393. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");//可以方便地修改日期格式
394. String years = dateFormat.format(date); int years_value = Integer.parseInt(years);
395. years_value--;
396. return years_value+"-1-1";
397. }
398.
399. //获得上年最后一天的日期
400. public String getPreviousYearEnd(){
401. weeks--;
402. int yearPlus = this.getYearPlus();
403. GregorianCalendar currentDate = new GregorianCalendar();
404. currentDate.add(GregorianCalendar.DATE,yearPlus+MaxYear*weeks+(MaxYear-1));
405. Date yearDay = currentDate.getTime();
406. DateFormat df = DateFormat.getDateInstance();
407. String preYearDay = df.format(yearDay);
408. getThisSeasonTime(11);
409. return preYearDay;
410. }
411.
412. //获得本季度
413. public String getThisSeasonTime(int month){
414. int array[][] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}};
415. int season = 1;
416. if(month>=1&&month<=3){
417. season = 1;
418. }
419. if(month>=4&&month<=6){
420. season = 2;
421. }
422. if(month>=7&&month<=9){
423. season = 3;
424. }
425. if(month>=10&&month<=12){
426. season = 4;
427. }
428. int start_month = array[season-1][0];
429. int end_month = array[season-1][2];
430.
431. Date date = new Date();
432. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");//可以方便地修改日期格式
433. String years = dateFormat.format(date);
434. int years_value = Integer.parseInt(years);
435.
436. int start_days =1;//years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);
437. int end_days = getLastDayOfMonth(years_value,end_month);
438. String seasonDate = years_value+"-"+start_month+"-"+start_days+";"+years_value+"-"+end_month+"-"+end_days;
439. return seasonDate;
440.
441. }
442.
443. /**
444. * 获取某年某月的最后一天
445. * @param year 年
446. * @param month 月
447. * @return 最后一天
448. */
449. private int getLastDayOfMonth(int year, int month) {
450. if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8
451. || month == 10 || month == 12) {
452. return 31;
453. }
454. if (month == 4 || month == 6 || month == 9 || month == 11) {
455. return 30;
456. }
457. if (month == 2) {
458. if (isLeapYear(year)) {
459. return 29;
460. } else {
461. return 28;
462. }
463. }
464. return 0;
465. }
466. /**
467. * 是否闰年
468. * @param year 年
469. * @return
470. */
471. public boolean isLeapYear(int year) {
472. return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
473. }
474. }
发表评论
-
eclipse快捷键
2009-02-03 09:17 960作用域 功能 快捷键 全局 查找并替换 Ctrl+F 文本 ... -
Java随机码
2009-01-21 10:26 1567package servlet; import java.a ... -
fastExcel
2009-01-21 10:22 11561. public void testFastExcel ... -
类到底是从哪个Jar包或者目录下装载的
2009-01-11 09:54 909aClass.getProtectionDomain().ge ... -
生成可执行jar文件的教程
2008-12-11 09:27 990若要生成一个名为 cal.jar 的可执行jar文件:(文件名 ... -
软件智力面试题及答案
2008-08-28 11:29 1139第一组 1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。 ... -
word,excel,pdf
2008-08-28 09:59 9781、一个jacob操作Word的例子,其他操作excel,pd ... -
prototype.js参考
2008-08-22 16:42 1226<!DOCTYPE HTML PUBLIC " ... -
各类Http请求状态(status)及其含义
2008-08-22 16:18 1042AJAX中请求远端文件、或在检测远端文件是否掉链时,都需要了解 ... -
Eclips反编译插件的安装
2008-06-26 09:23 1193大家也许用过其他的反编译工具,比如jad,或者是集成的DJ J ... -
Java反射学习
2008-03-14 10:09 1914Java反射学习 Java反射学 ... -
java性能小知识
2008-02-28 09:47 895Vector v=new Vector(); for(int ... -
qq,msn,skype即时消息
2008-02-19 16:13 1081详细信息请见附件 -
java union and intersection
2008-01-18 09:50 2692String[] arrayA = new String[] ... -
Javamail
2008-01-10 13:20 2338Javamail,论坛上由已经有很多的讨论,但是俺觉得还是不够 ... -
Java中如何正确使用字体编码
2007-12-21 09:16 1174首先声明一下,此文章时从网上转载的。如下的某些方法是确实管 ... -
cvs搭建过程
2007-09-26 11:05 1093一。附件是安装文件 二。建资源库,可在任何地方。 三。set ... -
代码控制来改变应用程序的当前工作目录
2007-09-03 09:34 1025System.setProperty("user.d ... -
java file or folder
2007-08-28 13:21 1441import java.io.*; public class ... -
java调用存储过程
2007-08-20 09:12 673DBOperator db = new DBOperator( ...
相关推荐
java时间大全.txt java时间大全.txt java时间大全.txt java时间大全.txt
Java时间格式转换大全
Java时间大小的比较 date java
java时间操作函数汇总
java 时间片算法 发生的泥泞i萨芬第几集
java 时间 datatime 工具类
JAVA时间格式化处理.
java时间转换大全,包括常用的日期和时间和时间戳之间的转换
java 时间格式转换符的使用 java 时间格式转换符的使用 java 时间格式转换符的使用
java 时间字符串中毫秒值时有时无,怎么解析(csdn)————程序
Java时间控件精确到秒 自己修改的别人的开源项目
java时间工具类按照年月周维度在时间区间内输出时间点
此为根据时间轮定时器的算法实现的 java时间轮的定时器,多轮和单轮实现
_java时间格式大全.doc
此为根据时间轮定时器的算法实现的 java时间轮的定时器,多轮和单轮实现
JAVA时间工具类(计算法定工作日工时):计算某个日期加上几个工作日后的一个工作日期(除周末和法定节假日),计算某个日期后一天的工作日期(除周末和法定节假日),计算两个日期的真实工作日(除周末和法定节假日),...
基于java的开发源码-xk-time Java时间工具包.zip 基于java的开发源码-xk-time Java时间工具包.zip 基于java的开发源码-xk-time Java时间工具包.zip 基于java的开发源码-xk-time Java时间工具包.zip 基于java的开发...
没事写了一个关于java时间处理的工具类,很简单
java时间管理系统(springboot+mysql+vue完整源码+说明文档+LW) 时间管理系统的功能分为管理员,用户两个部门,系统的主要功能包括首页,个人中心,系统公告管理,用户管理,时间分类管理,事件数据管理,目标数据...
java时间格式大全