获取每周第一天和最后一天

偏执的太偏执、 2022-06-01 07:46 504阅读 0赞
  1. js:
  2. //第一种,测试可使用
  3. function getWeekDate(n){
  4. var now=new Date();
  5. var year=now.getFullYear();
  6. //因为月份是从0开始的,所以获取这个月的月份数要加1才行
  7. var month=now.getMonth()+1;
  8. var date=now.getDate();
  9. var day=now.getDay();
  10. //判断是否为周日,如果不是的话,就让今天的day-1(例如星期二就是2-1)
  11. if(day!==0){
  12. n=n+(day-1);
  13. }
  14. else{
  15. n=n+day;
  16. }
  17. if(day){
  18. //这个判断是为了解决跨年的问题
  19. if(month>1){
  20. month=month;
  21. }
  22. //这个判断是为了解决跨年的问题,月份是从0开始的
  23. else{
  24. year=year-1;
  25. month=12;
  26. }
  27. }
  28. now.setDate(now.getDate()-n);
  29. year=now.getFullYear();
  30. month=now.getMonth()+1;
  31. date=now.getDate();
  32. s=year+"年"+(month<10?('0'+month):month)+"月"+(date<10?('0'+date):date)+"日";
  33. return s;
  34. }
  35. //设置本周开始结束日期
  36. $('#current_week').html(getWeekDate(0) + "~" + getWeekDate(-6));
  37. ///第二种(未测试)
  38. var now = new Date(); //当前日期
  39. var nowDayOfWeek = now.getDay(); //今天本周的第几天
  40. var nowDay = now.getDate(); //当前日
  41. var nowMonth = now.getMonth(); //当前月
  42. var nowYear = now.getYear(); //当前年
  43. nowYear += (nowYear < 2000) ? 1900 : 0; //
  44. var lastMonthDate = new Date(); //上月日期
  45. lastMonthDate.setDate(1);
  46. lastMonthDate.setMonth(lastMonthDate.getMonth()-1);
  47. var lastYear = lastMonthDate.getYear();
  48. var lastMonth = lastMonthDate.getMonth();
  49. //格式化日期:yyyy-MM-dd
  50. function formatDate(date) {
  51. var myyear = date.getFullYear();
  52. var mymonth = date.getMonth()+1;
  53. var myweekday = date.getDate();
  54. if(mymonth < 10){
  55. mymonth = "0" + mymonth;
  56. }
  57. if(myweekday < 10){
  58. myweekday = "0" + myweekday;
  59. }
  60. return (myyear+"-"+mymonth + "-" + myweekday);
  61. }
  62. //获得本周的开始日期
  63. function getWeekStartDate() {
  64. var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
  65. return formatDate(weekStartDate);
  66. }
  67. //获得本周的结束日期
  68. function getWeekEndDate() {
  69. var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek));
  70. return formatDate(weekEndDate);
  71. }
  72. /** java
  73. * 获取当前日期所在周第一天和最后一天的日期
  74. * @return
  75. */
  76. public static Map<String, String> getWeekDay() {
  77. Map<String, String> map = new HashMap<String, String>();
  78. Calendar cal = Calendar.getInstance();
  79. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  80. //判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了
  81. int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
  82. if(1 == dayWeek) {
  83. cal.add(Calendar.DAY_OF_MONTH, -1);
  84. }
  85. cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); // 获取本周一的日期
  86. map.put("mon", df.format(cal.getTime()));
  87. cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
  88. cal.add(Calendar.WEEK_OF_YEAR, 1);
  89. map.put("sun", df.format(cal.getTime()));
  90. return map;
  91. }
  92. /**
  93. * 获取指定日期所在周第一天和最后一天的日期
  94. * @param currentDate
  95. * @return
  96. * @throws ParseException
  97. * @throws java.text.ParseException
  98. */
  99. public static Map<String, String> getWeekDay(String currentDate) throws ParseException{
  100. Map<String, String> map = new HashMap<String, String>();
  101. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  102. Date date = df.parse(currentDate);
  103. Calendar cal = Calendar.getInstance();
  104. cal.setTime(date);
  105. //判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了
  106. int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天
  107. if(1 == dayWeek) {
  108. cal.add(Calendar.DAY_OF_MONTH, -1);
  109. }
  110. cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); // 获取本周一的日期
  111. map.put("mon", df.format(cal.getTime()));
  112. cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
  113. cal.add(Calendar.WEEK_OF_YEAR, 1);
  114. map.put("sun", df.format(cal.getTime()));
  115. return map;
  116. }

发表评论

表情:
评论列表 (有 0 条评论,504人围观)

还没有评论,来说两句吧...

相关阅读