16、根据年月日获取周几 以及整理的日期常用的工具类

 1   /**
 2      * @param year
 3      * @param month
 4      * @param day
 5      * @return
 6      */
 7     public static String CaculateWeekDay(int y,int m,int d)
 8     {
 9
10             String strDate = y+"-"+m+"-"+d;// 定义日期字符串
11         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");// 定义日期格式
12         Date date = null;
13         try {
14             date = format.parse(strDate);// 将字符串转换为日期
15         }catch (ParseException e) {
16             }
17         Calendar c = Calendar.getInstance();
18         c.setTime(date);
19         int dayForWeek = 0;
20         if(c.get(Calendar.DAY_OF_WEEK) == 1){
21          dayForWeek = 7;
22         }else{
23          dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;
24         }          String day = "";        switch (dayFotWeek)        {          case 0:day = "周日";break;
          case 1:day = "周一";break;  
          case 2:day = "周二";break;
          case 3:day = "周三";break;
          case 4:day = "周四";break;
          case 5:day = "周五";break;
          case 6:day = "周六";break;         }
25         return day;
26
27     }
使用案例:  CaculateWeekDay(2015,3,2)得到的便是“周一”;

个人使用的日期工具类分享给大家:

  1     /**
  2      * 根据年月日,获取是周几
  3      * @param year
  4      * @param month
  5      * @param day
  6      * @return
  7      */
  8     public static String CaculateWeekDay(int y,int m,int d)
  9     {
 10
 11             String strDate = y+"-"+m+"-"+d;// 定义日期字符串
 12         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");// 定义日期格式
 13         Date date = null;
 14         try {
 15             date = format.parse(strDate);// 将字符串转换为日期
 16         }catch (ParseException e) {
 17             }
 18         Calendar c = Calendar.getInstance();
 19         c.setTime(date);
 20         int dayForWeek = 0;
 21         if(c.get(Calendar.DAY_OF_WEEK) == 1){
 22          dayForWeek = 7;
 23         }else{
 24          dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;
 25         }
 26         return Integer.toString(dayForWeek);
 27
 28     }
 29
 30
 31     /**
 32      * 获取今日的日期,举例:20141110,20140110
 33      * @return,日期的字符串
 34      */
 35     public static  String getNowDateString()
 36     {
 37         Date date = new Date();
 38         //年份
 39         int year = date.getYear() + 1900;
 40         //月份
 41         int month = date.getMonth() + 1;
 42         //日期
 43         int day = date.getDate();
 44
 45         String date_string ;
 46         if(month < 10)
 47         {
 48                 if(day < 10)
 49                 {
 50                     date_string = Integer.toString(year)+"0"+Integer.toString(month)+"0"+Integer.toString(day);
 51                 }
 52                 else
 53                 {
 54                     date_string = Integer.toString(year)+"0"+Integer.toString(month)+Integer.toString(day);
 55                 }
 56
 57         }
 58         else
 59         {
 60                 if(day < 10)
 61                 {
 62                     date_string = Integer.toString(year)+Integer.toString(month)+"0"+Integer.toString(day);
 63                 }
 64                 else
 65                 {
 66                     date_string = Integer.toString(year)+Integer.toString(month)+Integer.toString(day);
 67                 }
 68
 69         }
 70         return date_string;
 71     }
 72
 73
 74     /**
 75      * 获取今日包含时间点的日期,举例:2014020202(2014年2月2号2点)
 76      * @return,日期的字符串
 77      */
 78     public static  String getNowDateAndHourString()
 79     {
 80
 81         String date_string ;
 82         String month_str;
 83         String day_str;
 84         String hour_str;
 85
 86         Date date = new Date();
 87         //年份
 88         int year = date.getYear() + 1900;
 89         //月份
 90         int month = date.getMonth() + 1;
 91         //日期
 92         int day = date.getDate();
 93         //时间
 94         int hour = date.getHours();
 95
 96         //处理月份
 97         if(month < 10)
 98         {
 99                 month_str=0+Integer.toString(month);
100         }
101         else
102         {
103                 month_str=Integer.toString(month);
104         }
105
106         //处理日期
107         if(day < 10)
108         {
109                 day_str=0+Integer.toString(day);
110         }
111         else
112         {
113                 day_str=Integer.toString(day);
114         }
115
116         //处理时间
117         if(hour < 10)
118         {
119                 hour_str=0+Integer.toString(hour);
120         }
121         else
122         {
123                 hour_str=Integer.toString(hour);
124         }
125
126         date_string = year+month_str+day_str+hour_str;
127         return date_string;
128     }
129
130
131     /**
132      * 函数功能是根据当前的日期,当step为正数时,算出加上step后的日期;step为负数时,算出减去step后的日期
133      * @param step:要加或者减的天数
134      * @return :在当前日期的基础上加上或者减去step后的日期
135      */
136     public static  String getDate(int step) {
137                   Calendar cal = Calendar.getInstance();
138                   cal.add(Calendar.DATE, step);
139                   SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
140
141                   String str = sf.format(cal.getTime());
142
143                   System.out.print(str);
144                   return str;
145            }
146
147
148     /**
149      *根据距离今天的日期差,得到是第几周周几:举例说今天是本年的第三周周四,那么getWeek(1)得到便是"第三周>周五"
150      * @param step
151      * @return
152      */
153     public static String getWeek(int step)
154     {
155         Calendar cal = Calendar.getInstance();
156         cal.add(Calendar.DATE, step);
157
158         int week = cal.get(cal.WEEK_OF_YEAR);
159         int day = cal.get(cal.DAY_OF_WEEK);
160
161         if(day == 1)
162         {
163                 week = week -1;
164         }
165         day = day-1;
166
167         String [] day_of_week = {"日","一","二","三","四","五","六","日"};
168
169         if(week == 0)
170         {
171                 return "周"+day_of_week[day];
172         }
173
174         String str = "第"+week+"周"+">周"+day_of_week[day];
175         CommonUtils.LogWuwei(tag, "getWeek week is "+str+"day is "+day);
176         return str;
177     }
178
179
180     /**
181      * 根据距离今天的日期差,得到是周几:举例说今天是周二,那么getWeekDay(-1)得到的便是“周一”
182      * @param step
183      * @return
184      */
185     public static String getWeekDay(int step)
186     {
187         Calendar cal = Calendar.getInstance();
188         cal.add(Calendar.DATE, step);
189
190         int week = cal.get(cal.WEEK_OF_YEAR);
191         int day = cal.get(cal.DAY_OF_WEEK);
192
193         if(day == 1)
194         {
195                 week = week -1;
196         }
197         day = day-1;
198
199         String [] day_of_week = {"日","一","二","三","四","五","六","日"};
200
201             return "周"+day_of_week[day];
202
203     }
204
205
206      /**
207     * 获取当前日期是星期几<br>
208     *
209     * @param dt
210     * @return 当前日期是星期几
211     */
212     public static String getWeekOfDate() {
213               Date date=new Date();
214             SimpleDateFormat dateFm = new SimpleDateFormat("EEEE");
215             dateFm.format(date);
216
217            String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
218            Calendar cal = Calendar.getInstance();
219            cal.setTime(date);
220            int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
221            if (w < 0)
222                w = 0;
223            CommonUtils.LogWuwei(tag,"今天是 "+weekDays[w]);
224            return weekDays[w];
225    }
226
227
228     /**
229      * 根据日期获取时间戳
230      * @param normalDate 20141228
231      * @return  1419696000
232      */
233     public static long getTimeStamp(Long normalDate)
234     {
235         Long detail_date_tmp = normalDate;
236         String date_str = Long.toString(detail_date_tmp);
237         String year = date_str.substring(0, 4);
238         String month = date_str.substring(4, 6);
239         String day = date_str.substring(6, 8);
240         //CommonUtils.LogWuwei(tag,"detail_date_tmp is "+detail_date_tmp+" "+ year+":"+month+":"+day);
241
242         SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
243         Date date;
244         Calendar cal= Calendar.getInstance();
245         String parseStr = year+"-"+month+"-"+day;
246
247         try {
248             date = df.parse(parseStr);
249             cal = Calendar.getInstance();
250                 cal.setTime(date);
251         } catch (ParseException e) {
252             // TODO Auto-generated catch block
253             e.printStackTrace();
254         }
255
256         long timeStamp = cal.getTimeInMillis()/1000;
257
258         CommonUtils.LogWuwei(tag, "timeStamp is "+timeStamp);
259
260         return timeStamp;
261     }
262
263
264     /**
265      * 将”20141224” 解析成“2014年12月24日”
266      * @param date
267      * @return
268      */
269     public static String parseDate(Long date)
270     {
271         int year = (int)(date/10000);
272         int month = (int)(date%10000)/100;
273         int day = (int)(date%10000)%100;
274         return year+"年"+month+"月"+day+"日";
275
276     }
277
278
279      /**
280         * 获取当前日期是星期几<br>
281         *
282         * @param dt
283         * @return 当前日期是星期几
284         */
285         public static int getIntWeekOfDate() {
286                   Date date=new Date();
287                 SimpleDateFormat dateFm = new SimpleDateFormat("EEEE");
288                 dateFm.format(date);
289
290                int[] weekDays = {7,1,2,3,4,5,6};
291                    Calendar cal = Calendar.getInstance();
292                cal.setTime(date);
293                int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
294                if (w < 0)
295                    w = 0;
296             //   CommonUtils.LogWuwei(tag,"今天是 "+weekDays[w]);
297                return weekDays[w];
298        }
299
300         /**
301          * 根据今天是周几获取上周周一到周日的日期
302          */
303         public static String[] getLastWeekDate()
304         {
305             int today = CommonUtils.getIntWeekOfDate();//获取今天周几
306             String baseDate = "";//初始化上周一的日期
307             String date[] = {null,null,null,null,null,null,null};
308             int index = 0;
309             switch (today)////得到上周一的日期
310             {
311             case 1:
312                 baseDate = CommonUtils.getDate(-7);
313                 index = -7;
314                 break;
315             case 2:
316                 baseDate = CommonUtils.getDate(-8);
317                 index = -8;
318                 break;
319             case 3:
320                 baseDate = CommonUtils.getDate(-9);
321                 index = -9;
322                 break;
323             case 4:
324                 baseDate = CommonUtils.getDate(-10);
325                 index = -10;
326                 break;
327             case 5:
328                 baseDate = CommonUtils.getDate(-11);
329                 index = -11;
330                 break;
331             case 6:
332                 baseDate = CommonUtils.getDate(-12);
333                 index = -12;
334                 break;
335             case 7:
336                 baseDate = CommonUtils.getDate(-13);
337                 index = -13;
338                 break;
339             }
340
341             for(int i=0;i<7;i++)
342             {
343                 date[i] = CommonUtils.getDate(index+i);
344                 int k = i+1;
345                 CommonUtils.LogWuwei(tag,"上周"+k+" is "+date[i]);
346             }
347             return date;
348         }
349
350         /**
351          * 根据本周周一到周日的日期
352          */
353         public static String[] getThisWeekDate()
354         {
355             int today = CommonUtils.getIntWeekOfDate();//获取今天周几
356             String date[] = {null,null,null,null,null,null,null};
357             int index = 0;
358             switch (today)////得到上周一的日期
359             {
360             case 1:
361                 index = 0;
362                 break;
363             case 2:
364                 index = -1;
365                 break;
366             case 3:
367                 index = -2;
368                 break;
369             case 4:
370                 index = -3;
371                 break;
372             case 5:
373                 index = -4;
374                 break;
375             case 6:
376                 index = -5;
377                 break;
378             case 7:
379                 index = -6;
380                 break;
381             }
382
383             for(int i=0;i<7;i++)
384             {
385                 date[i] = CommonUtils.getDate(index+i);
386                 int k = i+1;
387                 CommonUtils.LogWuwei(tag,"本周"+k+" is "+date[i]);
388             }
389             return date;
390         }
391
392
393         /**
394          * 获取下周周一到周日的日期
395          */
396         public static String[] getNextWeekDate()
397         {
398             int today = CommonUtils.getIntWeekOfDate();//获取今天周几
399             String date[] = {null,null,null,null,null,null,null};
400             int index = 0;
401             switch (today)////得到下周的日期
402             {
403             case 1:
404                 index = 7;
405                 break;
406             case 2:
407                 index = 6;
408                 break;
409             case 3:
410                 index = 5;
411                 break;
412             case 4:
413                 index = 4;
414                 break;
415             case 5:
416                 index = 3;
417                 break;
418             case 6:
419                 index = 2;
420                 break;
421             case 7:
422                 index = 1;
423                 break;
424             }
425
426             for(int i=0;i<7;i++)
427             {
428                 date[i] = CommonUtils.getDate(index+i);
429                 int k = i+1;
430                 CommonUtils.LogWuwei(tag,"下周"+k+" is "+date[i]);
431             }
432             return date;
433         }
434
435
436         /**
437          * 从今天起往前寻找8周内每个周一的日期
438          */
439         public static long[] checkRecentEfficientDataFromToday()
440         {
441             long modayData[] = new long[8];
442             int today = getIntWeekOfDate();//获取今天是周几
443             int step = 0;
444             switch (today)
445             {
446             case 1:
447                 step = 0;
448                 break;
449             case 2:
450                 step = -1;
451                 break;
452             case 3:
453                 step = -2;
454                 break;
455             case 4:
456                 step = -3;
457                 break;
458             case 5:
459                 step = -4;
460                 break;
461             case 6:
462                 step = -5;
463                 break;
464             case 7:
465                 step = -6;
466                 break;
467             }
468
469             for(int i=0;i<8;i++)
470             {
471                 modayData[i] = Long.parseLong(getDate(step-7*i));
472                 CommonUtils.LogWuwei(tag, "monday date is "+modayData[i]);
473             }
474             return modayData;
475         }
476
477         /**
478          * 获取到本周一的日期
479          * @return
480          */
481         public static long getThisMonday()
482         {
483             int today = getIntWeekOfDate();//获取今天是周几
484             long monday = (long)0;
485             int step = 0;
486             switch (today)
487             {
488             case 1:
489                 step = 0;
490                 break;
491             case 2:
492                 step = -1;
493                 break;
494             case 3:
495                 step = -2;
496                 break;
497             case 4:
498                 step = -3;
499                 break;
500             case 5:
501                 step = -4;
502                 break;
503             case 6:
504                 step = -5;
505                 break;
506             case 7:
507                 step = -6;
508                 break;
509             }
510             monday = Long.parseLong(getNowDateString())+step;
511             return monday;
512         }
513
514         /**
515          * 获取到上周的周一是几号
516          * @return
517          */
518         public static long getLastMonday()
519         {
520             int today = getIntWeekOfDate();//获取今天是周几
521             long monday = (long)0;
522             int step = 0;
523             switch (today)
524             {
525             case 1:
526                 step = 0;
527                 break;
528             case 2:
529                 step = -1;
530                 break;
531             case 3:
532                 step = -2;
533                 break;
534             case 4:
535                 step = -3;
536                 break;
537             case 5:
538                 step = -4;
539                 break;
540             case 6:
541                 step = -5;
542                 break;
543             case 7:
544                 step = -6;
545                 break;
546             }
547             monday = Long.parseLong(getNowDateString())-7+step;
548             return monday;
549         }
550
551         /**
552          * 获取到下周的周一是几号
553          * @return
554          */
555         public static long getNextMonday()
556         {
557             int today = getIntWeekOfDate();//获取今天是周几
558             long monday = (long)0;
559             int step = 0;
560             switch (today)
561             {
562             case 1:
563                 step = 0;
564                 break;
565             case 2:
566                 step = -1;
567                 break;
568             case 3:
569                 step = -2;
570                 break;
571             case 4:
572                 step = -3;
573                 break;
574             case 5:
575                 step = -4;
576                 break;
577             case 6:
578                 step = -5;
579                 break;
580             case 7:
581                 step = -6;
582                 break;
583             }
584             monday = Long.parseLong(getNowDateString())+7+step;
585             return monday;
586         }
587         

				
时间: 2024-11-07 02:53:59

16、根据年月日获取周几 以及整理的日期常用的工具类的相关文章

整理收集的一些常用java工具类

1.json转换工具 1. package com.taotao.utils; 3. import java.util.List; 5. import com.fasterxml.jackson.core.JsonProcessingException; 6. import com.fasterxml.jackson.databind.JavaType; 7. import com.fasterxml.jackson.databind.JsonNode; 8. import com.faster

java使用Calendar类获取常用简单工具类

前言: 在工作中,我们经常会用到时间相关的.比如月初.月末.年初.年末.指定月份所在季度的季末.当前时间加X天.x月.x年等这些常用的虽说不难,但是如果要用到,立马又想不起来.这里凯哥归纳了一些常用的放在一个工具类中.有需要的朋友可以拿去或是收藏.如果大家有更好的,欢迎留言.如果凯哥哪里不对,欢迎大家留言骂起~. 声明:本文有凯哥Java(www.kaigejava.com)发布于凯哥个人博客. 正文: 1:获取指定日期 指定月份后的最后一天.返回格式:yyyyMMdd 获取指定日期 指定月份后

Android开发中常用的工具类整理

来源 http://wujingchao.net/2015/03/16/android_common_utility_class.html 日志 package net.wujingchao.android.utility import android.util.Log; public final class L { private final static int LEVEL = 5; private final static String DEFAULT_TAG = "L"; pr

iOS根据16进制的色号来设置颜色,适合封装工具类

iOS中有时候UI给的一个色号就像 #54e1b7 这个,而我们一般设置颜色都是根据RBG来设置的,所以这里需要把这个16进制的色号转为RGB值,这里我们就使用一下的方法来调用设置颜色. 1 + (UIColor *)getColor:(NSString *)hexColor 2 { 3 if (hexColor == nil || hexColor.length == 0) { 4 NSLog(@"color string is nil."); 5 return [UIColor b

IOS开发--常用工具类收集整理(Objective-C)(持续更新)

前言:整理和收集了IOS项目开发常用的工具类,最后也给出了源码下载链接. 1.让图片不要渲染的工具类 简介:   直接看这个工具类的源码就知道,怎么设置了: 1 // 2 // UIImage+Render.h 3 // Created by HeYang on 16/1/18. 4 // Copyright © 2016年 HeYang. All rights reserved. 5 // 6 7 #import <UIKit/UIKit.h> 8 9 @interface UIImage

java学习--基础知识进阶第十三天--反射机制的概述和字节码对象的获取方式、反射操作构造方法、成员方法、成员属性、JavaBean的概述&amp;BeanUtils的使用、自定义BeanUtils工具类

今日内容介绍 u 反射机制的概述和字节码对象的获取方式 u 反射操作构造方法.成员方法.成员属性 u JavaBean的概述&BeanUtils的使用 u 自定义BeanUtils工具类 第1章 反射机制概述.字节码对象的获取方式.反射操作构造方法.成员方法.成员属性 1.1 反射机制的概述和字节码对象的获取方式 1.1.1 反射介绍 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法        这种动态获取的以及动

【方法整理】Oracle 获取trace跟踪文件名的几种常用方式

[方法整理]Oracle 获取trace跟踪文件名的几种常用方式 1  BLOG文档结构图     2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① trace跟踪文件的获取   Tips: ① 本文在itpub(http://blog.itpub.net/26736162).博客园(http://www.cnblogs.com/lhrbest)和微信公众号(xiaomaimiaolhr)有同

在phpmyadmin后台获取webshell方法汇总整理

方法一: CREATE TABLE `mysql`.`xiaoma` (`xiaoma1` TEXT NOT NULL ); INSERT INTO `mysql`.`xiaoma` (`xiaoma1` )VALUES ('<?php @eval($_POST[xiaoma])?>'); SELECT xiaomaFROM study INTO OUTFILE 'E:/wamp/www/7.php'; ----以上同时执行,在数据库: mysql 下创建一个表名为:xiaoma,字段为xia

根据周次获取周次的日期范围

根据周次获取周次的日期范围 /** * 返回某年某月周次范围 * @param year 年份 * @param weeks 周次 * @return 返回周次的日期范围 */ function getXDate(year,weeks){ var date = new Date(year,"0","1"); var time = date.getTime(); // 获取当前星期几,0:星期一 .... var _week = date.getDay(); //当这