java取当前周期、月初至月末、季度初至季度末日期。

需求1: 当前登陆日期的周一至周五的日期 比如 现在是2012-06-11 周一是2012-06-11 周五就是 2012-06-15。

需求2: 月初至月末。 同上。 当前登陆的时间算出月初和月末的时间。

需求3: 季度初和季度末。 同上。 当前登陆时间算出季度的第一天和季度末的最后一天。

求函数。 谢谢。。 整了1天多没整出来。。。 时间不够了就上来发个需求。。

hyperprice
hyperprice 谢谢回帖的各位朋友。 谢谢一楼的哥们。 相对多种实现采纳为答案的这位朋友的更为简洁些。 再次感谢!
接近 8 年之前 回复

5个回答

我给你写了个,参考一下嘛:
[code="java"]
Calendar calendar = new GregorianCalendar();
// 1. 当前登陆日期的周一至周五的日期 比如 现在是2012-06-11 周一是2012-06-11 周五就是 2012-06-15。
calendar.set(Calendar.DAY_OF_WEEK, 2);
System.out.println("登录日期的周一:" + print(calendar.getTime()));
// 2.星期五,第六天s
calendar.set(Calendar.DAY_OF_WEEK, 6);
System.out.println("登录日期的周五:" + print(calendar.getTime()));
// 3.当前月的第一天
calendar.set(Calendar.DAY_OF_MONTH, 1);
System.out.println("当前月的第一天:" + print(calendar.getTime()));
// 4.当前月的最后一天
calendar.add(Calendar.MONTH, 1);
calendar.set(Calendar.DAY_OF_MONTH, 0);
System.out.println("当前月的最后一天:" + print(calendar.getTime()));

    // 季度初
    calendar.setTime(new Date());
    int month = getQuarterInMonth(calendar.get(Calendar.MONTH), true);
    calendar.set(Calendar.MONTH, month);
    calendar.set(Calendar.DAY_OF_MONTH, 1);
    System.out.println("当季度的第一天:" + print(calendar.getTime()));
    // 季度末
    calendar.setTime(new Date());
    month = getQuarterInMonth(calendar.get(Calendar.MONTH), false);
    calendar.set(Calendar.MONTH, month + 1);
    calendar.set(Calendar.DAY_OF_MONTH, 0);
    System.out.println("当前时间的季度末:" + print(calendar.getTime()));
}

private static String print(Date d) {
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    return df.format(d);
}

// 返回第几个月份,不是几月
// 季度一年四季, 第一季度:2月-4月, 第二季度:5月-7月, 第三季度:8月-10月, 第四季度:11月-1月
private static int getQuarterInMonth(int month, boolean isQuarterStart) {
    int months[] = { 1, 4, 7, 10 };
    if (!isQuarterStart) {
        months = new int[] { 3, 6, 9, 12 };
    }
    if (month >= 2 && month <= 4)
        return months[0];
    else if (month >= 5 && month <= 7)
        return months[1];
    else if (month >= 8 && month <= 10)
        return months[2];
    else
        return months[3];
}[/code]
jcpbadboy
jcpbadboy good,学习中,谢谢分享
接近 8 年之前 回复

package com.bruce.test.testcalendar;

import java.text.DateFormat;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**

  • 常用日历操作辅助类
  • @author steven 2010-08-10
  • @email:qing.tan@iwode.com
    */
    public class CalendarUtil {

    private int weeks = 0;// 用来全局控制 上一周,本周,下一周的周数变化
    private int MaxDate; // 一月最大天数
    private int MaxYear; // 一年最大天数

    /**

    • 测试
    • @param args */ @SuppressWarnings("static-access") public static void main(String[] args) { CalendarUtil tt = new CalendarUtil(); System.out.println("获取当天日期:" + tt.getNowTime("yyyy-MM-dd")); System.out.println("获取本周一日期:" + tt.getMondayOFWeek()); System.out.println("获取本周日的日期~:" + tt.getCurrentWeekday()); System.out.println("获取上周一日期:" + tt.getPreviousWeekday()); System.out.println("获取上周日日期:" + tt.getPreviousWeekSunday()); System.out.println("获取下周一日期:" + tt.getNextMonday()); System.out.println("获取下周日日期:" + tt.getNextSunday()); System.out.println("获得相应周的周六的日期:" + tt.getNowTime("yyyy-MM-dd")); System.out.println("获取本月第一天日期:" + tt.getFirstDayOfMonth()); System.out.println("获取本月最后一天日期:" + tt.getDefaultDay()); System.out.println("获取上月第一天日期:" + tt.getPreviousMonthFirst()); System.out.println("获取上月最后一天的日期:" + tt.getPreviousMonthEnd()); System.out.println("获取下月第一天日期:" + tt.getNextMonthFirst()); System.out.println("获取下月最后一天日期:" + tt.getNextMonthEnd()); System.out.println("获取本年的第一天日期:" + tt.getCurrentYearFirst()); System.out.println("获取本年最后一天日期:" + tt.getCurrentYearEnd()); System.out.println("获取去年的第一天日期:" + tt.getPreviousYearFirst()); System.out.println("获取去年的最后一天日期:" + tt.getPreviousYearEnd()); System.out.println("获取明年第一天日期:" + tt.getNextYearFirst()); System.out.println("获取明年最后一天日期:" + tt.getNextYearEnd()); System.out.println("获取本季度第一天:" + tt.getThisSeasonFirstTime(11)); System.out.println("获取本季度最后一天:" + tt.getThisSeasonFinallyTime(11)); System.out.println("获取两个日期之间间隔天数2008-12-1~2008-9.29:" + CalendarUtil.getTwoDay("2008-12-1", "2008-9-29")); System.out.println("获取当前月的第几周:" + tt.getWeekOfMonth()); System.out.println("获取当前年份:" + tt.getYear()); System.out.println("获取当前月份:" + tt.getMonth()); System.out.println("获取今天在本年的第几天:" + tt.getDayOfYear()); System.out.println("获得今天在本月的第几天(获得当前日):" + tt.getDayOfMonth()); System.out.println("获得今天在本周的第几天:" + tt.getDayOfWeek()); System.out.println("获得半年后的日期:" + tt.convertDateToString(tt.getTimeYearNext())); }

    /**

    • 获得当前年份
    • @return */ public static int getYear() { return Calendar.getInstance().get(Calendar.YEAR); }

    /**

    • 获得当前月份
    • @return */ public static int getMonth() { return Calendar.getInstance().get(Calendar.MONTH) + 1; }

    /**

    • 获得今天在本年的第几天
    • @return */ public static int getDayOfYear() { return Calendar.getInstance().get(Calendar.DAY_OF_YEAR); }

    /**

    • 获得今天在本月的第几天(获得当前日)
    • @return */ public static int getDayOfMonth() { return Calendar.getInstance().get(Calendar.DAY_OF_MONTH); }

    /**

    • 获得今天在本周的第几天
    • @return */ public static int getDayOfWeek() { return Calendar.getInstance().get(Calendar.DAY_OF_WEEK); }

    /**

    • 获得今天是这个月的第几周
    • @return */ public static int getWeekOfMonth() { return Calendar.getInstance().get(Calendar.DAY_OF_WEEK_IN_MONTH); }

    /**

    • 获得半年后的日期
    • @return */ public static Date getTimeYearNext() { Calendar.getInstance().add(Calendar.DAY_OF_YEAR, 183); return Calendar.getInstance().getTime(); }

    /**

    • 将日期转换成字符串
    • @param dateTime
    • @return */ public static String convertDateToString(Date dateTime) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); return df.format(dateTime); }

    /**

    • 得到二个日期间的间隔天数
    • @param sj1
    • @param sj2
    • @return */ public static String getTwoDay(String sj1, String sj2) { SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd"); long day = 0; try { java.util.Date date = myFormatter.parse(sj1); java.util.Date mydate = myFormatter.parse(sj2); day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000); } catch (Exception e) { return ""; } return day + ""; }

    /**

    • 根据一个日期,返回是星期几的字符串
    • @param sdate
    • @return */ public static String getWeek(String sdate) { // 再转换为时间 Date date = CalendarUtil.strToDate(sdate); Calendar c = Calendar.getInstance(); c.setTime(date); // int hour=c.get(Calendar.DAY_OF_WEEK); // hour中存的就是星期几了,其范围 1~7 // 1=星期日 7=星期六,其他类推 return new SimpleDateFormat("EEEE").format(c.getTime()); }

    /**

    • 将短时间格式字符串转换为时间 yyyy-MM-dd
    • @param strDate
    • @return */ public static Date strToDate(String strDate) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); ParsePosition pos = new ParsePosition(0); Date strtodate = formatter.parse(strDate, pos); return strtodate; }

    /**

    • 两个时间之间的天数
    • @param date1
    • @param date2
    • @return */ public static long getDays(String date1, String date2) { if (date1 == null || date1.equals("")) return 0; if (date2 == null || date2.equals("")) return 0; // 转换为标准时间 SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd"); java.util.Date date = null; java.util.Date mydate = null; try { date = myFormatter.parse(date1); mydate = myFormatter.parse(date2); } catch (Exception e) { } long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000); return day; }

    /**

    • 计算当月最后一天,返回字符串
    • @return
      */
      public String getDefaultDay() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
      lastDate.add(Calendar.MONTH, 1);// 加一个月,变为下月的1号
      lastDate.add(Calendar.DATE, -1);// 减去一天,变为当月最后一天

      str = sdf.format(lastDate.getTime());
      return str;
      }

    /**

    • 上月第一天
    • @return
      */
      public String getPreviousMonthFirst() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
      lastDate.add(Calendar.MONTH, -1);// 减一个月,变为下月的1号
      // lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天

      str = sdf.format(lastDate.getTime());
      return str;
      }

    /**

    • 获取当月第一天
    • @return
      */
      public String getFirstDayOfMonth() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
      str = sdf.format(lastDate.getTime());
      return str;
      }

    /**

    • 获得本周星期日的日期
    • @return
      */
      public String getCurrentWeekday() {
      weeks = 0;
      int mondayPlus = this.getMondayPlus();
      GregorianCalendar currentDate = new GregorianCalendar();
      currentDate.add(GregorianCalendar.DATE, mondayPlus + 6);
      Date monday = currentDate.getTime();

      DateFormat df = DateFormat.getDateInstance();
      String preMonday = df.format(monday);
      return preMonday;
      }

    /**

    • 获取当天时间
    • @param dateformat
    • @return */ public String getNowTime(String dateformat) { Date now = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);// 可以方便地修改日期格式 String hehe = dateFormat.format(now); return hehe; }

    /**

    • 获得当前日期与本周日相差的天数
    • @return */ private int getMondayPlus() { Calendar cd = Calendar.getInstance(); // 获得今天是一周的第几天,星期日是第一天,星期二是第二天...... int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1; // 因为按中国礼拜一作为第一天所以这里减1 if (dayOfWeek == 1) { return 0; } else { return 1 - dayOfWeek; } }

    /**

    • 获得本周一的日期
    • @return
      */
      public String getMondayOFWeek() {
      weeks = 0;
      int mondayPlus = this.getMondayPlus();
      GregorianCalendar currentDate = new GregorianCalendar();
      currentDate.add(GregorianCalendar.DATE, mondayPlus);
      Date monday = currentDate.getTime();

      DateFormat df = DateFormat.getDateInstance();
      String preMonday = df.format(monday);
      return preMonday;
      }

    /**

    • 获得相应周的周六的日期
    • @return */ public String getSaturday() { int mondayPlus = this.getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks + 6); Date monday = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; }

    /**

    • 获得上周星期日的日期
    • @return */ public String getPreviousWeekSunday() { weeks = 0; weeks--; int mondayPlus = this.getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + weeks); Date monday = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; }

    /**

    • 获得上周星期一的日期
    • @return */ public String getPreviousWeekday() { weeks--; int mondayPlus = this.getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks); Date monday = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; }

    /**

    • 获得下周星期一的日期 */ public String getNextMonday() { weeks++; int mondayPlus = this.getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + 7); Date monday = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; }

    /**

    • 获得下周星期日的日期
      */
      public String getNextSunday() {

      int mondayPlus = this.getMondayPlus();
      GregorianCalendar currentDate = new GregorianCalendar();
      currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 + 6);
      Date monday = currentDate.getTime();
      DateFormat df = DateFormat.getDateInstance();
      String preMonday = df.format(monday);
      return preMonday;
      }

    @SuppressWarnings("unused")
    private int getMonthPlus() {
    Calendar cd = Calendar.getInstance();
    int monthOfNumber = cd.get(Calendar.DAY_OF_MONTH);
    cd.set(Calendar.DATE, 1);// 把日期设置为当月第一天
    cd.roll(Calendar.DATE, -1);// 日期回滚一天,也就是最后一天
    MaxDate = cd.get(Calendar.DATE);
    if (monthOfNumber == 1) {
    return -MaxDate;
    } else {
    return 1 - monthOfNumber;
    }
    }

    /**

    • 获得上月最后一天的日期
    • @return
      */
      public String getPreviousMonthEnd() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.add(Calendar.MONTH, -1);// 减一个月
      lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
      lastDate.roll(Calendar.DATE, -1);// 日期回滚一天,也就是本月最后一天
      str = sdf.format(lastDate.getTime());
      return str;
      }

    /**

    • 获得下个月第一天的日期
    • @return
      */
      public String getNextMonthFirst() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.add(Calendar.MONTH, 1);// 减一个月
      lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
      str = sdf.format(lastDate.getTime());
      return str;
      }

    /**

    • 获得下个月最后一天的日期
    • @return
      */
      public String getNextMonthEnd() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.add(Calendar.MONTH, 1);// 加一个月
      lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
      lastDate.roll(Calendar.DATE, -1);// 日期回滚一天,也就是本月最后一天
      str = sdf.format(lastDate.getTime());
      return str;
      }

    /**

    • 获得明年最后一天的日期
    • @return
      */
      public String getNextYearEnd() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.add(Calendar.YEAR, 1);// 加一个年
      lastDate.set(Calendar.DAY_OF_YEAR, 1);
      lastDate.roll(Calendar.DAY_OF_YEAR, -1);
      str = sdf.format(lastDate.getTime());
      return str;
      }

    /**

    • 获得明年第一天的日期
    • @return
      */
      public String getNextYearFirst() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.add(Calendar.YEAR, 1);// 加一个年
      lastDate.set(Calendar.DAY_OF_YEAR, 1);
      str = sdf.format(lastDate.getTime());
      return str;

    }

    /**

    • 获得本年有多少天
    • @return */ @SuppressWarnings("unused") private int getMaxYear() { Calendar cd = Calendar.getInstance(); cd.set(Calendar.DAY_OF_YEAR, 1);// 把日期设为当年第一天 cd.roll(Calendar.DAY_OF_YEAR, -1);// 把日期回滚一天。 int MaxYear = cd.get(Calendar.DAY_OF_YEAR); return MaxYear; }

    private int getYearPlus() {
    Calendar cd = Calendar.getInstance();
    int yearOfNumber = cd.get(Calendar.DAY_OF_YEAR);// 获得当天是一年中的第几天
    cd.set(Calendar.DAY_OF_YEAR, 1);// 把日期设为当年第一天
    cd.roll(Calendar.DAY_OF_YEAR, -1);// 把日期回滚一天。
    int MaxYear = cd.get(Calendar.DAY_OF_YEAR);
    if (yearOfNumber == 1) {
    return -MaxYear;
    } else {
    return 1 - yearOfNumber;
    }
    }

    /**

    • 获得本年第一天的日期
    • @return */ public String getCurrentYearFirst() { int yearPlus = this.getYearPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, yearPlus); Date yearDay = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preYearDay = df.format(yearDay); return preYearDay; }

    // 获得本年最后一天的日期 *
    public String getCurrentYearEnd() {
    Date date = new Date();
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
    String years = dateFormat.format(date);
    return years + "-12-31";
    }

    // 获得上年第一天的日期 *
    public String getPreviousYearFirst() {
    Date date = new Date();
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
    String years = dateFormat.format(date);
    int years_value = Integer.parseInt(years);
    years_value--;
    return years_value + "-1-1";
    }

    // 获得上年最后一天的日期
    public String getPreviousYearEnd() {
    weeks--;
    int yearPlus = this.getYearPlus();
    GregorianCalendar currentDate = new GregorianCalendar();
    currentDate.add(GregorianCalendar.DATE, yearPlus + MaxYear * weeks
    + (MaxYear - 1));
    Date yearDay = currentDate.getTime();
    DateFormat df = DateFormat.getDateInstance();
    String preYearDay = df.format(yearDay);
    return preYearDay;
    }

    /**

    • 获得本季度第一天
    • @param month
    • @return
      */
      public String getThisSeasonFirstTime(int month) {
      int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };
      int season = 1;
      if (month >= 1 && month <= 3) {
      season = 1;
      }
      if (month >= 4 && month <= 6) {
      season = 2;
      }
      if (month >= 7 && month <= 9) {
      season = 3;
      }
      if (month >= 10 && month <= 12) {
      season = 4;
      }
      int start_month = array[season - 1][0];
      int end_month = array[season - 1][2];

      Date date = new Date();
      SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
      String years = dateFormat.format(date);
      int years_value = Integer.parseInt(years);

      int start_days = 1;// years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);
      @SuppressWarnings("unused")
      int end_days = getLastDayOfMonth(years_value, end_month);
      String seasonDate = years_value + "-" + start_month + "-" + start_days;
      return seasonDate;

    }

    /**

    • 获得本季度最后一天
    • @param month
    • @return
      */
      @SuppressWarnings("unused")
      public String getThisSeasonFinallyTime(int month) {
      int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };
      int season = 1;
      if (month >= 1 && month <= 3) {
      season = 1;
      }
      if (month >= 4 && month <= 6) {
      season = 2;
      }
      if (month >= 7 && month <= 9) {
      season = 3;
      }
      if (month >= 10 && month <= 12) {
      season = 4;
      }
      int start_month = array[season - 1][0];
      int end_month = array[season - 1][2];

      Date date = new Date();
      SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
      String years = dateFormat.format(date);
      int years_value = Integer.parseInt(years);

      int start_days = 1;// years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);
      int end_days = getLastDayOfMonth(years_value, end_month);
      String seasonDate = years_value + "-" + end_month + "-" + end_days;
      return seasonDate;

    }

    /**

    • 获取某年某月的最后一天
    • @param year
    • @param month
    • @return 最后一天 */ private int getLastDayOfMonth(int year, int month) { if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { return 31; } if (month == 4 || month == 6 || month == 9 || month == 11) { return 30; } if (month == 2) { if (isLeapYear(year)) { return 29; } else { return 28; } } return 0; }

    /**

    • 是否闰年
    • @param year
    • @return */ public boolean isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); }

    /**

    • 是否闰年
    • @param year
    • @return */ public boolean isLeapYear2(int year) { return new GregorianCalendar().isLeapYear(year); } }

摘自网络,希望能帮助你!

[code="java"]package com.bruce.test.testcalendar;

import java.text.DateFormat;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**

  • 常用日历操作辅助类
  • @author steven 2010-08-10
  • @email:qing.tan@iwode.com
    */
    public class CalendarUtil {

    private int weeks = 0;// 用来全局控制 上一周,本周,下一周的周数变化
    private int MaxDate; // 一月最大天数
    private int MaxYear; // 一年最大天数

    /**

    • 测试
    • @param args */ @SuppressWarnings("static-access") public static void main(String[] args) { CalendarUtil tt = new CalendarUtil(); System.out.println("获取当天日期:" + tt.getNowTime("yyyy-MM-dd")); System.out.println("获取本周一日期:" + tt.getMondayOFWeek()); System.out.println("获取本周日的日期~:" + tt.getCurrentWeekday()); System.out.println("获取上周一日期:" + tt.getPreviousWeekday()); System.out.println("获取上周日日期:" + tt.getPreviousWeekSunday()); System.out.println("获取下周一日期:" + tt.getNextMonday()); System.out.println("获取下周日日期:" + tt.getNextSunday()); System.out.println("获得相应周的周六的日期:" + tt.getNowTime("yyyy-MM-dd")); System.out.println("获取本月第一天日期:" + tt.getFirstDayOfMonth()); System.out.println("获取本月最后一天日期:" + tt.getDefaultDay()); System.out.println("获取上月第一天日期:" + tt.getPreviousMonthFirst()); System.out.println("获取上月最后一天的日期:" + tt.getPreviousMonthEnd()); System.out.println("获取下月第一天日期:" + tt.getNextMonthFirst()); System.out.println("获取下月最后一天日期:" + tt.getNextMonthEnd()); System.out.println("获取本年的第一天日期:" + tt.getCurrentYearFirst()); System.out.println("获取本年最后一天日期:" + tt.getCurrentYearEnd()); System.out.println("获取去年的第一天日期:" + tt.getPreviousYearFirst()); System.out.println("获取去年的最后一天日期:" + tt.getPreviousYearEnd()); System.out.println("获取明年第一天日期:" + tt.getNextYearFirst()); System.out.println("获取明年最后一天日期:" + tt.getNextYearEnd()); System.out.println("获取本季度第一天:" + tt.getThisSeasonFirstTime(11)); System.out.println("获取本季度最后一天:" + tt.getThisSeasonFinallyTime(11)); System.out.println("获取两个日期之间间隔天数2008-12-1~2008-9.29:" + CalendarUtil.getTwoDay("2008-12-1", "2008-9-29")); System.out.println("获取当前月的第几周:" + tt.getWeekOfMonth()); System.out.println("获取当前年份:" + tt.getYear()); System.out.println("获取当前月份:" + tt.getMonth()); System.out.println("获取今天在本年的第几天:" + tt.getDayOfYear()); System.out.println("获得今天在本月的第几天(获得当前日):" + tt.getDayOfMonth()); System.out.println("获得今天在本周的第几天:" + tt.getDayOfWeek()); System.out.println("获得半年后的日期:" + tt.convertDateToString(tt.getTimeYearNext())); }

    /**

    • 获得当前年份
    • @return */ public static int getYear() { return Calendar.getInstance().get(Calendar.YEAR); }

    /**

    • 获得当前月份
    • @return */ public static int getMonth() { return Calendar.getInstance().get(Calendar.MONTH) + 1; }

    /**

    • 获得今天在本年的第几天
    • @return */ public static int getDayOfYear() { return Calendar.getInstance().get(Calendar.DAY_OF_YEAR); }

    /**

    • 获得今天在本月的第几天(获得当前日)
    • @return */ public static int getDayOfMonth() { return Calendar.getInstance().get(Calendar.DAY_OF_MONTH); }

    /**

    • 获得今天在本周的第几天
    • @return */ public static int getDayOfWeek() { return Calendar.getInstance().get(Calendar.DAY_OF_WEEK); }

    /**

    • 获得今天是这个月的第几周
    • @return */ public static int getWeekOfMonth() { return Calendar.getInstance().get(Calendar.DAY_OF_WEEK_IN_MONTH); }

    /**

    • 获得半年后的日期
    • @return */ public static Date getTimeYearNext() { Calendar.getInstance().add(Calendar.DAY_OF_YEAR, 183); return Calendar.getInstance().getTime(); }

    /**

    • 将日期转换成字符串
    • @param dateTime
    • @return */ public static String convertDateToString(Date dateTime) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); return df.format(dateTime); }

    /**

    • 得到二个日期间的间隔天数
    • @param sj1
    • @param sj2
    • @return */ public static String getTwoDay(String sj1, String sj2) { SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd"); long day = 0; try { java.util.Date date = myFormatter.parse(sj1); java.util.Date mydate = myFormatter.parse(sj2); day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000); } catch (Exception e) { return ""; } return day + ""; }

    /**

    • 根据一个日期,返回是星期几的字符串
    • @param sdate
    • @return */ public static String getWeek(String sdate) { // 再转换为时间 Date date = CalendarUtil.strToDate(sdate); Calendar c = Calendar.getInstance(); c.setTime(date); // int hour=c.get(Calendar.DAY_OF_WEEK); // hour中存的就是星期几了,其范围 1~7 // 1=星期日 7=星期六,其他类推 return new SimpleDateFormat("EEEE").format(c.getTime()); }

    /**

    • 将短时间格式字符串转换为时间 yyyy-MM-dd
    • @param strDate
    • @return */ public static Date strToDate(String strDate) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); ParsePosition pos = new ParsePosition(0); Date strtodate = formatter.parse(strDate, pos); return strtodate; }

    /**

    • 两个时间之间的天数
    • @param date1
    • @param date2
    • @return */ public static long getDays(String date1, String date2) { if (date1 == null || date1.equals("")) return 0; if (date2 == null || date2.equals("")) return 0; // 转换为标准时间 SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd"); java.util.Date date = null; java.util.Date mydate = null; try { date = myFormatter.parse(date1); mydate = myFormatter.parse(date2); } catch (Exception e) { } long day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000); return day; }

    /**

    • 计算当月最后一天,返回字符串
    • @return
      */
      public String getDefaultDay() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
      lastDate.add(Calendar.MONTH, 1);// 加一个月,变为下月的1号
      lastDate.add(Calendar.DATE, -1);// 减去一天,变为当月最后一天

      str = sdf.format(lastDate.getTime());
      return str;
      }

    /**

    • 上月第一天
    • @return
      */
      public String getPreviousMonthFirst() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
      lastDate.add(Calendar.MONTH, -1);// 减一个月,变为下月的1号
      // lastDate.add(Calendar.DATE,-1);//减去一天,变为当月最后一天

      str = sdf.format(lastDate.getTime());
      return str;
      }

    /**

    • 获取当月第一天
    • @return
      */
      public String getFirstDayOfMonth() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.set(Calendar.DATE, 1);// 设为当前月的1号
      str = sdf.format(lastDate.getTime());
      return str;
      }

    /**

    • 获得本周星期日的日期
    • @return
      */
      public String getCurrentWeekday() {
      weeks = 0;
      int mondayPlus = this.getMondayPlus();
      GregorianCalendar currentDate = new GregorianCalendar();
      currentDate.add(GregorianCalendar.DATE, mondayPlus + 6);
      Date monday = currentDate.getTime();

      DateFormat df = DateFormat.getDateInstance();
      String preMonday = df.format(monday);
      return preMonday;
      }

    /**

    • 获取当天时间
    • @param dateformat
    • @return */ public String getNowTime(String dateformat) { Date now = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat(dateformat);// 可以方便地修改日期格式 String hehe = dateFormat.format(now); return hehe; }

    /**

    • 获得当前日期与本周日相差的天数
    • @return */ private int getMondayPlus() { Calendar cd = Calendar.getInstance(); // 获得今天是一周的第几天,星期日是第一天,星期二是第二天...... int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1; // 因为按中国礼拜一作为第一天所以这里减1 if (dayOfWeek == 1) { return 0; } else { return 1 - dayOfWeek; } }

    /**

    • 获得本周一的日期
    • @return
      */
      public String getMondayOFWeek() {
      weeks = 0;
      int mondayPlus = this.getMondayPlus();
      GregorianCalendar currentDate = new GregorianCalendar();
      currentDate.add(GregorianCalendar.DATE, mondayPlus);
      Date monday = currentDate.getTime();

      DateFormat df = DateFormat.getDateInstance();
      String preMonday = df.format(monday);
      return preMonday;
      }

    /**

    • 获得相应周的周六的日期
    • @return */ public String getSaturday() { int mondayPlus = this.getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks + 6); Date monday = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; }

    /**

    • 获得上周星期日的日期
    • @return */ public String getPreviousWeekSunday() { weeks = 0; weeks--; int mondayPlus = this.getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + weeks); Date monday = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; }

    /**

    • 获得上周星期一的日期
    • @return */ public String getPreviousWeekday() { weeks--; int mondayPlus = this.getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 * weeks); Date monday = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; }

    /**

    • 获得下周星期一的日期 */ public String getNextMonday() { weeks++; int mondayPlus = this.getMondayPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, mondayPlus + 7); Date monday = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preMonday = df.format(monday); return preMonday; }

    /**

    • 获得下周星期日的日期
      */
      public String getNextSunday() {

      int mondayPlus = this.getMondayPlus();
      GregorianCalendar currentDate = new GregorianCalendar();
      currentDate.add(GregorianCalendar.DATE, mondayPlus + 7 + 6);
      Date monday = currentDate.getTime();
      DateFormat df = DateFormat.getDateInstance();
      String preMonday = df.format(monday);
      return preMonday;
      }

    @SuppressWarnings("unused")
    private int getMonthPlus() {
    Calendar cd = Calendar.getInstance();
    int monthOfNumber = cd.get(Calendar.DAY_OF_MONTH);
    cd.set(Calendar.DATE, 1);// 把日期设置为当月第一天
    cd.roll(Calendar.DATE, -1);// 日期回滚一天,也就是最后一天
    MaxDate = cd.get(Calendar.DATE);
    if (monthOfNumber == 1) {
    return -MaxDate;
    } else {
    return 1 - monthOfNumber;
    }
    }

    /**

    • 获得上月最后一天的日期
    • @return
      */
      public String getPreviousMonthEnd() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.add(Calendar.MONTH, -1);// 减一个月
      lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
      lastDate.roll(Calendar.DATE, -1);// 日期回滚一天,也就是本月最后一天
      str = sdf.format(lastDate.getTime());
      return str;
      }

    /**

    • 获得下个月第一天的日期
    • @return
      */
      public String getNextMonthFirst() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.add(Calendar.MONTH, 1);// 减一个月
      lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
      str = sdf.format(lastDate.getTime());
      return str;
      }

    /**

    • 获得下个月最后一天的日期
    • @return
      */
      public String getNextMonthEnd() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.add(Calendar.MONTH, 1);// 加一个月
      lastDate.set(Calendar.DATE, 1);// 把日期设置为当月第一天
      lastDate.roll(Calendar.DATE, -1);// 日期回滚一天,也就是本月最后一天
      str = sdf.format(lastDate.getTime());
      return str;
      }

    /**

    • 获得明年最后一天的日期
    • @return
      */
      public String getNextYearEnd() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.add(Calendar.YEAR, 1);// 加一个年
      lastDate.set(Calendar.DAY_OF_YEAR, 1);
      lastDate.roll(Calendar.DAY_OF_YEAR, -1);
      str = sdf.format(lastDate.getTime());
      return str;
      }

    /**

    • 获得明年第一天的日期
    • @return
      */
      public String getNextYearFirst() {
      String str = "";
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

      Calendar lastDate = Calendar.getInstance();
      lastDate.add(Calendar.YEAR, 1);// 加一个年
      lastDate.set(Calendar.DAY_OF_YEAR, 1);
      str = sdf.format(lastDate.getTime());
      return str;

    }

    /**

    • 获得本年有多少天
    • @return */ @SuppressWarnings("unused") private int getMaxYear() { Calendar cd = Calendar.getInstance(); cd.set(Calendar.DAY_OF_YEAR, 1);// 把日期设为当年第一天 cd.roll(Calendar.DAY_OF_YEAR, -1);// 把日期回滚一天。 int MaxYear = cd.get(Calendar.DAY_OF_YEAR); return MaxYear; }

    private int getYearPlus() {
    Calendar cd = Calendar.getInstance();
    int yearOfNumber = cd.get(Calendar.DAY_OF_YEAR);// 获得当天是一年中的第几天
    cd.set(Calendar.DAY_OF_YEAR, 1);// 把日期设为当年第一天
    cd.roll(Calendar.DAY_OF_YEAR, -1);// 把日期回滚一天。
    int MaxYear = cd.get(Calendar.DAY_OF_YEAR);
    if (yearOfNumber == 1) {
    return -MaxYear;
    } else {
    return 1 - yearOfNumber;
    }
    }

    /**

    • 获得本年第一天的日期
    • @return */ public String getCurrentYearFirst() { int yearPlus = this.getYearPlus(); GregorianCalendar currentDate = new GregorianCalendar(); currentDate.add(GregorianCalendar.DATE, yearPlus); Date yearDay = currentDate.getTime(); DateFormat df = DateFormat.getDateInstance(); String preYearDay = df.format(yearDay); return preYearDay; }

    // 获得本年最后一天的日期 *
    public String getCurrentYearEnd() {
    Date date = new Date();
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
    String years = dateFormat.format(date);
    return years + "-12-31";
    }

    // 获得上年第一天的日期 *
    public String getPreviousYearFirst() {
    Date date = new Date();
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
    String years = dateFormat.format(date);
    int years_value = Integer.parseInt(years);
    years_value--;
    return years_value + "-1-1";
    }

    // 获得上年最后一天的日期
    public String getPreviousYearEnd() {
    weeks--;
    int yearPlus = this.getYearPlus();
    GregorianCalendar currentDate = new GregorianCalendar();
    currentDate.add(GregorianCalendar.DATE, yearPlus + MaxYear * weeks
    + (MaxYear - 1));
    Date yearDay = currentDate.getTime();
    DateFormat df = DateFormat.getDateInstance();
    String preYearDay = df.format(yearDay);
    return preYearDay;
    }

    /**

    • 获得本季度第一天
    • @param month
    • @return
      */
      public String getThisSeasonFirstTime(int month) {
      int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };
      int season = 1;
      if (month >= 1 && month <= 3) {
      season = 1;
      }
      if (month >= 4 && month <= 6) {
      season = 2;
      }
      if (month >= 7 && month <= 9) {
      season = 3;
      }
      if (month >= 10 && month <= 12) {
      season = 4;
      }
      int start_month = array[season - 1][0];
      int end_month = array[season - 1][2];

      Date date = new Date();
      SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
      String years = dateFormat.format(date);
      int years_value = Integer.parseInt(years);

      int start_days = 1;// years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);
      @SuppressWarnings("unused")
      int end_days = getLastDayOfMonth(years_value, end_month);
      String seasonDate = years_value + "-" + start_month + "-" + start_days;
      return seasonDate;

    }

    /**

    • 获得本季度最后一天
    • @param month
    • @return
      */
      @SuppressWarnings("unused")
      public String getThisSeasonFinallyTime(int month) {
      int array[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 }, { 10, 11, 12 } };
      int season = 1;
      if (month >= 1 && month <= 3) {
      season = 1;
      }
      if (month >= 4 && month <= 6) {
      season = 2;
      }
      if (month >= 7 && month <= 9) {
      season = 3;
      }
      if (month >= 10 && month <= 12) {
      season = 4;
      }
      int start_month = array[season - 1][0];
      int end_month = array[season - 1][2];

      Date date = new Date();
      SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy");// 可以方便地修改日期格式
      String years = dateFormat.format(date);
      int years_value = Integer.parseInt(years);

      int start_days = 1;// years+"-"+String.valueOf(start_month)+"-1";//getLastDayOfMonth(years_value,start_month);
      int end_days = getLastDayOfMonth(years_value, end_month);
      String seasonDate = years_value + "-" + end_month + "-" + end_days;
      return seasonDate;

    }

    /**

    • 获取某年某月的最后一天
    • @param year
    • @param month
    • @return 最后一天 */ private int getLastDayOfMonth(int year, int month) { if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { return 31; } if (month == 4 || month == 6 || month == 9 || month == 11) { return 30; } if (month == 2) { if (isLeapYear(year)) { return 29; } else { return 28; } } return 0; }

    /**

    • 是否闰年
    • @param year
    • @return */ public boolean isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); }

    /**

    • 是否闰年
    • @param year
    • @return */ public boolean isLeapYear2(int year) { return new GregorianCalendar().isLeapYear(year); } } [/code] 摘自网络,希望能帮助你
leemoby_cn
leemoby_cn Nice, mark 一下
大约 6 年之前 回复

[code="java"]
/**
* 获取指定日期所在周的周一
* @Methods Name getMonday
* @return Date
/
public Date getMonday(Date date){
Calendar cDay = Calendar.getInstance();

cDay.setTime(date);

cDay.set(Calendar.DAY_OF_WEEK, 2);//老外将周日定位第一天,周一取第二天
return cDay.getTime();

}
/
*
* 获取指定日期所在周日
* @Methods Name getSunday
* @return Date
/
public Date getSunday(Date date){
Calendar cDay = Calendar.getInstance();

cDay.setTime(date);
if(Calendar.DAY_OF_WEEK==cDay.getFirstDayOfWeek()){ //如果刚好是周日,直接返回
return date;
}else{//如果不是周日,加一周计算
cDay.add(Calendar.DAY_OF_YEAR, 7);
cDay.set(Calendar.DAY_OF_WEEK, 1);
System.out.println(cDay.getTime());
return cDay.getTime();
}

}
/
*
* 得到本月第一天的日期
* @Methods Name getFirstDayOfMonth
* @return Date
/
public Date getFirstDayOfMonth(Date date) {

Calendar cDay = Calendar.getInstance();

cDay.setTime(date);
cDay.set(Calendar.DAY_OF_MONTH, 1);
System.out.println(cDay.getTime());
return cDay.getTime();

}

/
*
* 得到本月最后一天的日期
* @Methods Name getLastDayOfMonth
* @return Date
/
public Date getLastDayOfMonth(Date date) {

Calendar cDay = Calendar.getInstance();

cDay.setTime(date);
cDay.set(Calendar.DAY_OF_MONTH, cDay.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println(cDay.getTime());
return cDay.getTime();

}
/
*
* 得到本季度第一天的日期
* @Methods Name getFirstDayOfQuarter
* @return Date
/
public Date getFirstDayOfQuarter(Date date) {

Calendar cDay = Calendar.getInstance();

cDay.setTime(date);
int curMonth = cDay.get(Calendar.MONTH);
if (curMonth >= Calendar.JANUARY && curMonth <= Calendar.MARCH){

cDay.set(Calendar.MONTH, Calendar.JANUARY);
}
if (curMonth >= Calendar.APRIL && curMonth <= Calendar.JUNE){

cDay.set(Calendar.MONTH, Calendar.APRIL);
}
if (curMonth >= Calendar.JULY && curMonth <= Calendar.AUGUST) {

cDay.set(Calendar.MONTH, Calendar.JULY);
}
if (curMonth >= Calendar.OCTOBER && curMonth <= Calendar.DECEMBER) {

cDay.set(Calendar.MONTH, Calendar.OCTOBER);
}
cDay.set(Calendar.DAY_OF_MONTH, cDay.getActualMinimum(Calendar.DAY_OF_MONTH));
System.out.println(cDay.getTime());
return cDay.getTime();

}
/
*
* 得到本季度最后一天的日期
* @Methods Name getLastDayOfQuarter
* @return Date
*/
public Date getLastDayOfQuarter(Date date) {

Calendar cDay = Calendar.getInstance();

cDay.setTime(date);
int curMonth = cDay.get(Calendar.MONTH);
if (curMonth >= Calendar.JANUARY && curMonth <= Calendar.MARCH){

cDay.set(Calendar.MONTH, Calendar.MARCH);
}
if (curMonth >= Calendar.APRIL && curMonth <= Calendar.JUNE){

cDay.set(Calendar.MONTH, Calendar.JUNE);
}
if (curMonth >= Calendar.JULY && curMonth <= Calendar.AUGUST) {

cDay.set(Calendar.MONTH, Calendar.AUGUST);
}
if (curMonth >= Calendar.OCTOBER && curMonth <= Calendar.DECEMBER) {

cDay.set(Calendar.MONTH, Calendar.DECEMBER);
}
cDay.set(Calendar.DAY_OF_MONTH, cDay.getActualMaximum(Calendar.DAY_OF_MONTH));
System.out.println(cDay.getTime());
return cDay.getTime();

}
[/code]

hyperprice
hyperprice 朋友辛苦了,感谢! 虽然没有采纳答案,但是你回答的也很精辟。 只是分有点少了不然也追加给你了。 再次感谢!
接近 8 年之前 回复

去看下 joda-time.jar 吧

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java获取本周所有日期和上周所有日期

java获取本周所有日期,和本周第一天和最后一天,和上周所有日期,和上周第一天和上周最后一天

mysql查询月初到今日的问题。求大佬解救。

1. 比如今天是2019年4月10号,我想获得四月初到今天的数据,以及上个月月初到上个月10号的数据,以及今年年初到今日的数据,以及(今天周3)周一到周三的数据。本周周一到周三的数据。 2. 我现在已经写好时间的转换,就是不知道数据库查询时如果处理时间段的问题, ``` SELECT sum(ajea.active_electrical) AS value FROM apd_jc_ele_active ajea LEFT JOIN t_pd_sb_znkg tpsz ON tpsz.OBJ_ID = ajea.object_id WHERE ajea.station_id = #{stationId} AND tpsz.KGLX = '1' AND date_format(ajea.create_time,'%Y%m%d') = date_format(#{queryDate}, '%Y%m%d') ``` 这边数据转换实在java代码里写的,#{queryDate}是传过来的时间,比如今天10号,这边传过来就是2019-04-10,传过来的上周的今日就是2019-04-03,因为今天周三,所以就想查上周一到上周三的数据和(如果是周四就查周一到周四的和),四月初到10号的值,上个月月初到上个月10号的值,去年年初到四月10号的值,今年年初到四月10号的值,比较复杂,星期,月份,年的查询可以分开写,我现在就是不知道怎么写where语句。 小菜鸟一只 求大佬解救。

每月月初重置数据库某字段 java如何实现?

每个人每个月有10次机会,数据库字段 数据 为10,每用一次-1。 然后在每个月月初的时候自动重置为10,java如何实现?

用JAVA来写的话。怎么写出出生年月日来计算距离下个生日还有多少天的方法?

用JAVA来写的话。怎么写出出生年月日来计算距离下个生日还有多少天的方法? 出生年月日的格式是yyyy-MM-dd。 返回值为String类型

如何使用golang获取当月的开始日期和结束日期?

<div class="post-text" itemprop="text"> <p>I want to make a simple program of golang which only tell me the current month start date and and month's end date. There is also a condition in this is that if the user will entered the month and year then it will give me the start date and end date of that year and month. For this I have tried the below program but it will not giving me the right results:</p> <pre><code>package main import ( "fmt" "time" ) func main() { var year int var month int year = 2018 month = 1 if year != 0 &amp;&amp; month != 0 { t2 := time.Now().AddDate(year, month, 0) fmt.Println(t2) } else { t2 := time.Now().AddDate(0, 0, 0) fmt.Println(t2) } } </code></pre> <p><a href="https://play.golang.org/p/bcE3EWru_NV" rel="nofollow noreferrer">go playground link</a></p> <p>Can any body tell me how I will correct the program.</p> <p>Thanks in advance.</p> </div>

如何获取当年和上一年的所有月份的开始和结束日期?

<div class="post-text" itemprop="text"> <p>I need help to create an array using php via loop that will store the number of seconds of start and end of all the months of current and previous year. The array will look somewhat like this.</p> <pre><code> $dates = array( 'previous dates' =&gt; array( 'November, 2017' =&gt; array( 'start' =&gt; 1512082800, 'end' =&gt; 1514674800), 'December, 2017' =&gt; array( 'start' =&gt; 1512082800, 'end' =&gt; 1514674800) ), 'current dates' =&gt; array( 'January, 2018' =&gt; array( 'start' =&gt; 1512082800, 'end' =&gt; 1514674800), 'February, 2018' =&gt; array( 'start' =&gt; 1512082800, 'end' =&gt; 1514674800) ) ) </code></pre> </div>

Orecle 如何取系统时间的上个月的第一天0点和上个月最后一天的最后一秒

现有脚本是 date between to__date('2017-10-01 00:00:00','yyyy/mm/dd hh24:mi:ss') and to_date(2017-10-31 0:00:00','yyyy/mm/dd hh24:mi:ss')) 需要规避每个月日期不同 以及跨年的问题 希望通过sysdate 得到以上区间 sysdate 为以上地址区间的下个月的随机一天。

c#控制台程序怎么设置为每个月末执行一遍程序

c#控制台程序怎么设置为每个月末执行一遍程序,就是写好了一个程序但是要每个月 自动执行一下。

使用DateTime()获取每月的第N天

<div class="post-text" itemprop="text"> <p>I need to get date of 10th day of current month. This way is not working:</p> <pre><code>&lt;?php $date_start = new DateTime(); $date_start-&gt;modify('tenth day of this month'); echo $date_start-&gt;format('Y-m-d H:i:s'), " "; ?&gt; </code></pre> <p>Results:</p> <blockquote> <p>Warning: DateTime::modify(): Failed to parse time string (tenth day of this month ) at position 10 (o): The timezone could not be found in the database in [...][...] on line 3</p> </blockquote> <p>Of cource, I can use <code>date('Y-m-10')</code> but I need to make it <strong>with DateTime() object</strong>. </p> </div>

判断一个时间是否在两个时间之间的查询语句怎么写

判断一个时间是否在两个时间之间的查询语句怎么写,oracle数据库。自己想通过前台输入起止时间,将表中属于这个区间的字段都查出来,但是sql语句不会写,应该怎么写

Datetimepicker限制开始和结束日期

<div class="post-text" itemprop="text"> <p>So here i have two datetimepicker. Im using datetimepicker by the way. Start datetimepicker and End datetimepicker1. Let say i try to pull list of recard based on start and end datetime selected by user. We assume user will select start datetime for example 2019-07-08 08:00:00, Once the start datetime is selected the event will triggered where the End datetime they only able to select limit 2-3 days range based on the selected Start datetime. Example start datetime is 2019-07-08 08:00:00, then the End datetime user only able to select within 2019-07-09 08:00:00 to 2019-07-11 08:00:00.. User cannot select more than that range. Actually its based on the Start datetime.</p> <p>here my current starting code</p> <pre><code>var minDate = moment().subtract(4, 'days'); var maxDate = moment(); $('#datetimepicker, #datetimepicker1').datetimepicker({ format:'yyyy-mm-dd HH:mm:ss', minDate: minDate, maxDate: maxDate, showClear: false, useCurrent: false }); </code></pre> <p>Any idea how to have such function using Datetimepicker?</p> </div>

struts2 poi 统计指定月份的报表统计

我需要统计部门 在指定的月份的 部门 人数统计 月初人数 月末人数 本月调入 本月调出 本月新入职 本月离职 IA 事业部 政府事业部 商用 软开 我只是做能 单纯的几张表做连接 然后生成报表 在内存中传入inputstream类型的值 供下载 这个报表统计 应该怎么做呢 各位大侠 详细一点啊 谢谢

shell 脚本问题,关于时间判断的问题?

我现在要生成每天数据,而得到的数据是上月的,本月的3号到次月的2号(11月的3号-12月的2号生成的数据都是10月整个月的),都以这个数据为固定值。这时间上我该怎么在脚本里控制?????

津津的储蓄计划津津的零花钱

津津的零花钱一直都是自己管理。每个月的月初妈妈给津津 300300 300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。 为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上 20%20\% 20%还给津津。因此津津制定了一个储蓄计划:每个月的月初,在得到妈妈给的零花钱后,如果她预计到这个月的月末手中还会有多于 100100 100元或恰好 100100 100元,她就会把整百的钱存在妈妈那里,剩余的钱留在自己手中。 例如 1111 11月初津津手中还有 8383 83元,妈妈给了津津 300300 300元。津津预计 1111 11月的花销是 180180 180元,那么她就会在妈妈那里存 200200 200元,自己留下 183183 183元。到了 1111 11月月末,津津手中会剩下 33 3元钱。 津津发现这个储蓄计划的主要风险是,存在妈妈那里的钱在年末之前不能取出。有可能在某个月的月初,津津手中的钱加上这个月妈妈给的钱,不够这个月的原定预算。如果出现这种情况,津津将不得不在这个月省吃俭用,压缩预算。 现在请你根据2004年1月到12月每个月津津的预算,判断会不会出现这种情况。如果不会,计算到2004年年末,妈妈将津津平常存的钱加上20%还给津津之后,津津手中会有多少钱。 输入格式 1212 12行数据,每行包含一个小于 350350 350的非负整数,分别表示 11 1月到 1212 12月津津的预算。 输出格式 一个整数。如果储蓄计划实施过程中出现某个月钱不够用的情况,输出 −X-X −X, XX X表示出现这种情况的第一个月;否则输出到 20042004 2004年年末津津手中会有多少钱。 注意,洛谷不需要进行文件输入输出,而是标准输入输出。 输入输出样例 输入 #1 复制 290 230 280 200 300 170 340 50 90 80 200 60 输出 #1 复制 -7 输入 #2 复制 290 230 280 200 300 170 330 50 90 80 200 60 输出 #2 复制 1580 #include <iostream> using namespace std; int main() { int mn,f=1,mm,c,mf; for(int i=1;i<=12;i++) { mn+=300; cin >> c; mn-=c; if(mn<0) { f=0; mf=i; break; } mm+=mn/100; mn%=100; } if(f==1) { mn+=mm*120; cout<<mn; } else { cout<<-mf; } return 0; } ![图片说明](https://img-ask.csdn.net/upload/202002/20/1582167300_595607.png) 求大佬帮忙寻找哪里错了? ``` ```

基于php周的日历月初

<div class="post-text" itemprop="text"> <p>Last question I want to add events from MySQL but I cant get the loops to get ok. They now loop the calendar 3 times and the <a href="https://i.stack.imgur.com/aGxKW.jpg" rel="nofollow noreferrer">enter image description here</a>dates in calendar 30times. How can I get the while loop to loop 1 time? If that is not to big change in the code. look att the picture it explanins what is wrong.</p> <pre><code> $sql = "SELECT DATE_FORMAT(date,'%d') AS dateformat FROM test"; $result = mysqli_query($con, $sql); while($row=mysqli_fetch_array($result)){ $week_number = 22; $year = 2018; $today = mktime(0, 0, 0, date("n"), date("d"), date("Y")); $curMonth = date("6", $today); $curDay = date("25", $today); for ($i = 1; $i &lt;= 5; $i++) { echo "&lt;tr&gt;"; for ($day = 1; $day &lt;= 7; $day++) { $datetime = strtotime($year."W".$week_number.$day); $month = date('n', $datetime); $daysnumber = date('d', $datetime); $sqldate = $row['dateformat']; echo $sqldate ; if ($curMonth === $month &amp;&amp; $daysnumber === $curDay) { echo"&lt;td width=50 bgcolor='#f44242'&gt;$daysnumber&lt;/td&gt;"; } elseif($curMonth === $month &amp;&amp; $daysnumber == $sqldate) { echo"&lt;td width=50 bgcolor='#1e8e8e'&gt;$sqldate&lt;/td&gt;"; } elseif($curMonth === $month) { echo"&lt;td width=50 bgcolor='#ffffff'&gt;$daysnumber&lt;/td&gt;"; } else { echo"&lt;td width=50 bgcolor='#ffffff'&gt;&lt;/td&gt;"; } } echo "&lt;/tr&gt;"; $week_number++; }} </code></pre> </div>

springboot 定时任务怎么分批次执行

各位大佬,只有一个任务,但是数据量大,所以要分批次执行,有没有什么解决方案呢 列如:1第一个线程跑前10条数据 2第二个跑中间1条,依次内推,有啥好的解决方式吗

一年多的数据运维,感觉什么都没学到,真的想放弃了.....

小弟毕业就来到这家公司,发配到外地(南京)搞java开发。前半年还接触到了一些代码开发,简简单单jsp+struts搭建的系统。 到了后一年纯粹就是处理数据,每天除了select 就是update。数据库里的数据一顿组合后跟各大监管啦协会啦 的平台系统做报文,特别是一到月底月初,财务部,业务部一段乱找,烦得不行,已经觉得自己不再是个程序员了, 感觉一直在做甲方的工作。年底实在不想再坚持了,看不到前景。 我知道肯定会被批浮躁,实在是工作不合口味。不知道大家有没有过类似的经历,求指点明灯。

php+mysql如何实现库存加权平均单价?急急!!!在线等。

各位高手: 大家好!请帮忙实现用PHP+MYSQL实现库存加权平均单价。我现在需要求当月存货单价,当月存货单价=(月初库存存货的实际金额+(本月进货实际单价*本月进货数量))/(月初库存存货数量+本月进货数量).以下是三个表,一个是产品表cxh_product(id,code编码,p_name名称),一个是入库表storage(product_id,qty,price,total,stockage_date),一个是出库表 stockout(product_id,qty,stockout_date)。 请帮忙解决,急急。。。

kettle预览报错,但是数据却能执行成功,这是怎么回事呢

2018/10/01 19:26:07 - 放贷明细表 - 转换已经从资源库预先载入. 2018/10/01 19:26:07 - Spoon - 转换已经打开. 2018/10/01 19:26:07 - Spoon - 正在打开转换 [放贷明细表]... 2018/10/01 19:26:07 - Spoon - 开始执行转换. 2018/10/01 19:26:07 - 放贷明细表 - 为了转换解除补丁开始 [放贷明细表] 2018/10/01 19:26:07 - 放贷明细表 - 已经找到的参数数量:0 2018/10/01 19:26:07 - 放贷明细表 - 这没有一个重放的转换 2018/10/01 19:26:07 - 放贷明细表 - 我找到 2 个不同的要执行的步骤. 2018/10/01 19:26:07 - 放贷明细表 - 分派记录集... 2018/10/01 19:26:07 - 放贷明细表 - 正在分配行组为步骤 0 --> 放贷明细表-新逻辑 2018/10/01 19:26:07 - 放贷明细表 - 前一个副本 = 1, 下一个副本=1 2018/10/01 19:26:07 - 放贷明细表 - 转换分配了新的行组 [放贷明细表-新逻辑.0 - Microsoft Excel 输出 2 2.0] 2018/10/01 19:26:07 - 放贷明细表 - 已分配 1 行组为步骤 0 --> 放贷明细表-新逻辑 2018/10/01 19:26:07 - 放贷明细表 - 正在分配行组为步骤 1 --> Microsoft Excel 输出 2 2 2018/10/01 19:26:07 - 放贷明细表 - 已分配 1 行组为步骤 1 --> Microsoft Excel 输出 2 2 2018/10/01 19:26:07 - 放贷明细表 - 正在分配步骤和步骤数据... 2018/10/01 19:26:07 - 放贷明细表 - 转换大约分配了 步骤 [放贷明细表-新逻辑] 类型的 [TableInput] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - 分散被激活 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - Starting allocation of buffers & new threads... 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - 步骤信息: 输入数量=0 输出数量=1 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - output rel. is 1:1 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - 发现输出 rowset [放贷明细表-新逻辑.0 - Microsoft Excel 输出 2 2.0] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - 完成分发 2018/10/01 19:26:07 - 放贷明细表 - 转换已经分配了一个新的步骤: [放贷明细表-新逻辑].0 2018/10/01 19:26:07 - 放贷明细表 - 转换大约分配了 步骤 [Microsoft Excel 输出 2 2] 类型的 [TypeExitExcelWriterStep] 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - 分散被激活 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - Starting allocation of buffers & new threads... 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - 步骤信息: 输入数量=1 输出数量=0 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - 获取来自前一步骤 [Microsoft Excel 输出 2 2] #0 --> 放贷明细表-新逻辑 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - input rel is 1:1 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - 发现输入记录集合 [放贷明细表-新逻辑.0 - Microsoft Excel 输出 2 2.0] 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - 完成分发 2018/10/01 19:26:07 - 放贷明细表 - 转换已经分配了一个新的步骤: [Microsoft Excel 输出 2 2].0 2018/10/01 19:26:07 - 放贷明细表 - 这项转换可以被回放 回放日期是: 2018/10/01 19:26:07 2018/10/01 19:26:07 - 放贷明细表 - 正在初始化 2 步骤... 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - Released server socket on port 0 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - Released server socket on port 0 2018/10/01 19:26:07 - sqlserver - New database connection defined 2018/10/01 19:26:07 - sqlserver - Auto commit off 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - Connected to database... 2018/10/01 19:26:07 - 放贷明细表 - 步骤 [放贷明细表-新逻辑.0] 初始化不完全,有缺陷. 2018/10/01 19:26:07 - 放贷明细表 - 步骤 [Microsoft Excel 输出 2 2.0] 初始化不完全,有缺陷. 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - 开始运行... 2018/10/01 19:26:07 - Microsoft Excel 输出 2 2.0 - 开始运行... 2018/10/01 19:26:07 - 放贷明细表 - 转换已经分配了 2 线程 和 1 列组. 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - SQL query : 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - DECLARE @BEGINDATE DATE=DATEADD(mm, DATEDIFF(mm,0,getdate())-1 , 0) --改 上月月初 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,@ENDDATE DATE=DATEADD(mm, DATEDIFF(mm,0,getdate()), 0); --改 本月月初 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - SELECT A.BusinessID AS [业务号] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,A.ContractNo AS [合同号] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,B.name AS [户名] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,CASE WHEN A.ProductType=62 AND E.MultiCapitalFlag=1 THEN E.LoanCapitalB ELSE A.LoanCapital END AS [合同金额] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,CONVERT(VARCHAR(10),A.LoanTime,120) AS [放款日期] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,ISNULL(A.EvaluationCost,0) AS [评估费] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,A.ProceduresAmout AS [手续费] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,CASE WHEN D.Name IN ('百度借现金','借趣花') THEN ([VcreditDW].dbo.YearInerterate(A.LoanCapital,A.LoanPeriod,A.DayRate)/12)*100 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - WHEN A.LoanKind in ('LOANKIND/TYSUIYIJIE') 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - then (VcreditDW.dbo.PMTS(A.InterestRate,A.LoanPeriod,A.LoanCapital)/12)*100 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ELSE 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - CASE WHEN A.InterestRate=0 THEN A.DayRate*30*100 ELSE A.InterestRate * 100 END 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - END AS [利率] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,A.ProceduresRate * 100 AS [手续费率] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,A.LoanPeriod AS [贷款期限] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ,ISNULL(D.Name,'') AS [产品名称] 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - FROM PostLoan.dbo.Business A 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - LEFT JOIN loan.[check].applyinfoCustomer B 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ON A.businessid=B.bid 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - LEFT JOIN [Sys].common.EnumerationAll D 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ON A.LoanKind=D.FullKey 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - JOIN PostLoan.dbo.BusinessExtend AS E WITH(NOLOCK) 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - ON A.BusinessID=E.BusinessID 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - WHERE A.LendingSideKey IN('COMPANY/WX_CDWS_LENDING','COMPANY/BHB_LENDING') 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - AND A.LoanTime>= @BEGINDATE AND A.LoanTime<@ENDDATE 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - AND A.Operable =1 2018/10/01 19:26:07 - 放贷明细表-新逻辑.0 - and D.Name<>'甜橙白条' 2018/10/01 19:26:13 - 放贷明细表-新逻辑.0 - Finished reading query, closing connection. 2018/10/01 19:26:13 - sqlserver - Connection to database closed! 2018/10/01 19:26:13 - 放贷明细表-新逻辑.0 - 完成处理 (I=20241, O=0, R=0, W=20241, U=0, E=0) 2018/10/01 19:26:14 - Microsoft Excel 输出 2 2.0 - 完成处理 (I=0, O=20242, R=20241, W=20241, U=0, E=0) 2018/10/01 19:26:14 - Spoon - 转换完成!! ``` ```

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

springboot+jwt实现token登陆权限认证

一 前言 此篇文章的内容也是学习不久,终于到周末有时间码一篇文章分享知识追寻者的粉丝们,学完本篇文章,读者将对token类的登陆认证流程有个全面的了解,可以动态搭建自己的登陆认证过程;对小项目而已是个轻量级的认证机制,符合开发需求;更多精彩原创内容关注公主号知识追寻者,读者的肯定,就是对作者的创作的最大支持; 二 jwt实现登陆认证流程 用户使用账号和面发出post请求 服务器接受到请求后使用私...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

程序员写出这样的代码,能不挨骂吗?

当你换槽填坑时,面对一个新的环境。能够快速熟练,上手实现业务需求是关键。但是,哪些因素会影响你快速上手呢?是原有代码写的不够好?还是注释写的不够好?昨夜...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

早上躺尸,晚上干活:硅谷科技公司这么流行迟到?

硅谷科技公司上班时间OPEN早已不是什么新鲜事,早九晚五是常态,但有很多企业由于不打卡,员工们10点、11点才“姗姗来迟”的情况也屡见不鲜。 这种灵活的考勤制度为人羡慕,甚至近年来,国内某些互联网企业也纷纷效仿。不过,硅谷普遍弹性的上班制度是怎么由来的呢?这种“流行性迟到”真的有那么轻松、悠哉吗? 《动态规划专题班》 课程试听内容: 动态规划的解题要领 动态规划三大类 求最值/计数/可行性 常...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

大胆预测下未来5年的Web开发

在2019年的ReactiveConf 上,《Elm in Action》的作者Richard Feldman对未来5年Web开发的发展做了预测,很有意思,分享给大家。如果你有机会从头...

立即提问
相关内容推荐