如何通过提供的年份和月份 获取这个月所有的日期? 5C

如题目所示jquery中如何通过提供的年份和月份 获取这个月所有的日期?

5个回答

createMonthDay() {
let daysOfMonth = [];
let fullYear = new Date().getFullYear();
let month = new Date().getMonth() + 1;
let lastDayOfMonth = new Date(fullYear, month, 0).getDate();
for (var i = 1; i <= lastDayOfMonth; i++) {
daysOfMonth.push(fullYear + '-' + month + '-' + i);
};
return daysOfMonth;
}
//output:
/*
["2016-2-1", "2016-2-2", "2016-2-3", "2016-2-4", "2016-2-5", "2016-2-6", "2016-2-7", "2016-2-8", "2016-2-9", "2016-2-10", "2016-2-11", "2016-2-12", "2016-2-13", "2016-2-14", "2016-2-15", "2016-2-16", "2016-2-17", "2016-2-18", "2016-2-19", "2016-2-20", "2016-2-21", "2016-2-22", "2016-2-23", "2016-2-24", "2016-2-25", "2016-2-26", "2016-2-27", "2016-2-28", "2016-2-29"]
*/

假设: 2017年 7月
var t1 = new Date(2017,7).getTime();
var t2 = new Date(2017,8).getTime();
var days = (t2-t1)/(3600*24*1000);
var d = new Array();
for(var i = 1; i<=days;i++) {
d.apend(2017+"/"+7+"i");
}
console.log(d);

思路是这个,没测试 ,把2017 和 7换成变量 ,改改测测

function getDaysInMonth(year,month){
var daysOfMonth = [];
month = parseInt(month,10);
var lastDayOfMonth = new Date(year, month, 0).getDate();
for (var i = 1; i <= lastDayOfMonth; i++) {
daysOfMonth.push(year + '-' + month + '-' + i);
};
return daysOfMonth;
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
获取当前日期的所在年份的前几个季度时间
例如:根据2019-7-15 00:00:00的时间,查询第一季度1-3月,第二季度4-6月,和第7月份的数据一起返回到前台
Java 获取当前日期不对
public static Calendar c = Calendar.getInstance(); public static int mYear = c.get(Calendar.YEAR); //获取当前年份 public static int mMonth = c.get(Calendar.MONTH); //获取当前月份 public static int mDay = c.get(Calendar.DAY_OF_MONTH); //获取当前月份的日期号码 今天是2015年12月28日,但是我这样获取的是2015年11月28日.在Android Studio中是这样,我用MyEclipse试一下也是这样,请问是哪里出问题了?
layui日期控件设置最大月份,但是最大月份不可确定是什么情况?
![图片说明](https://img-ask.csdn.net/upload/201904/19/1555662759_537265.png) ``` var date = new Date(); var year = date .getFullYear(); // 获取完整的年份(4位) var month = date .getMonth(); // 获取当前月份(0-11,0代表1月)的上一个月 if(month<10){ month = "0"+month; } var yearmonth = year+'/'+month; var date = year+'-'+month+'-01'; laydate.render({ elem: '#monthlyBill', format:'yyyy/MM', type: 'month',// 年月选择器 btns: ['clear', 'confirm'], value: yearmonth, // 默认选择当前日期的上一个月 max: date // 最大值只可选择当前日期的上一个月(max不支持只填写年月的格式) }); ``` 如图所示3月份不可确定是什么情况
JAVA风景日历,运行时,日历是有了,但风景没有,这是为什么?
运行是这样 ![图片说明](https://img-ask.csdn.net/upload/201911/14/1573703884_780623.jpg) 但是想要这样![图片说明](https://img-ask.csdn.net/upload/201911/14/1573708341_322515.jpg) ``` import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.*; import java.util.Timer; import javax.swing.*; import javax.swing.event.*; import javax.swing.table.*; //这是一个用JList和JTable完成的简单日历 public class calender { public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { JFrame frame = new CalendarFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }); } } class CalendarFrame extends JFrame { private static final long serialVersionUID = 8067844586793608064L; JPanel listPanel; // 显示月份的列表面板 JPanel tablePanel; // 显示日期的表格面板 JPanel textPanel; // 文本面板 JMenuBar menuBar; // JMenuBar,JMenu定义的变量都没有实现功能 JMenu fileMenu; JMenu editMenu; JMenu formatMenu; JMenu lookMenu; JMenu helpMenu; JEditorPane text; // 自带复制,剪切和删除快捷键功能的面板 JScrollPane textscrollpane; JScrollPane tablescrollpane; @SuppressWarnings("rawtypes") JList list; // 显示月份的列表 JTable table; // 显示日期的表格 JPanel yearPanel; // 显示年份的面板 JSpinner spinner; // JSpinner空间 JLabel label = new JLabel(); public static boolean flag = true; @SuppressWarnings({ "unchecked", "rawtypes" }) public CalendarFrame() { table = new JTable(new MyTableModel()); tablescrollpane = new JScrollPane(table); for (int i = 0; i < 7; i++) { TableColumn column = table.getColumnModel().getColumn(i);// 获取表格每一列 column.setResizable(false);// 不允许改变列的大小 } table.setBackground(Color.GREEN); table.setRowHeight(72); // 设定每列的大小 table.setRowSelectionAllowed(false);// 设定行的选择模式 table.setDefaultRenderer(String.class, new MyTableRenderer()); list = new JList(new AbstractListModel() // 匿名的list模型类,提供list显示的月份数据 { private static final long serialVersionUID = -3703164069291737586L; public Object getElementAt(int index) { String obj = null; switch (index) { case 0: obj = "Jan"; break; case 1: obj = "Feb"; break; case 2: obj = "Mar"; break; case 3: obj = "Apr"; break; case 4: obj = "May"; break; case 5: obj = "Jun"; break; case 6: obj = "Jul"; break; case 7: obj = "Aug"; break; case 8: obj = "Sep"; break; case 9: obj = "Oct"; break; case 10: obj = "Nov"; break; case 11: obj = "Dec"; break; } return obj; } @Override public int getSize() { return 12; } }); list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // 设定列表的选择模式 list.setCellRenderer(new MyListCellRenderer()); // 列表元素的绘制类MyListCellRenderer list.setSelectedIndex(Calendar.getInstance().get(Calendar.MONTH));// JList默认的月份为现实的月份 list.addListSelectionListener(new ListSelectionListener()// 当某个列表被选中时,更新日期table控件 { public void valueChanged(ListSelectionEvent e) { flag = true; table.updateUI(); } }); list.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent evt) { if (evt.getClickCount() == 2) { String s = (String) list.getSelectedValue(); JOptionPane.showMessageDialog(list, s); } } }); listPanel = new JPanel(); listPanel.setLayout(new BorderLayout()); listPanel.add(list); tablePanel = new JPanel(); tablePanel.setBackground(Color.white); tablePanel.setLayout(new BorderLayout()); tablePanel.add(tablescrollpane); // table.setBackground(Color.green); yearPanel = new JPanel();// 将label控件和JSpinner控件加入年份面板上 yearPanel.setLayout(new GridLayout(0, 4)); JLabel gongyuan = new JLabel("公元", JLabel.RIGHT); JLabel year = new JLabel("年"); spinner = new JSpinner(new SpinnerNumberModel(Calendar.getInstance() .get(Calendar.YEAR), null, null, 1)); spinner.addChangeListener(new ChangeListener() // 为JSpinner空间添加事件监听器 { @Override public void stateChanged(ChangeEvent e) { flag = true; table.updateUI(); } }); yearPanel.add(gongyuan); yearPanel.add(spinner); yearPanel.add(year); yearPanel.add(label); showTime(); new Timer().schedule(new TimerTask() { @Override public void run() { while (true) { showTime(); } } }, 1000); tablePanel.add(yearPanel, BorderLayout.NORTH);// 将年份面板加入到表格面板的北部 textPanel = new JPanel(); textPanel.setLayout(new BorderLayout()); text = new JEditorPane(); textscrollpane = new JScrollPane(text); textPanel.add(textscrollpane); text.setFont(new Font("SansSerif", Font.PLAIN, 40)); tablePanel.add(textPanel, BorderLayout.SOUTH); menuBar = new JMenuBar();// JMenu定义的空间都没实现功能 fileMenu = new JMenu("文件"); editMenu = new JMenu("编辑"); formatMenu = new JMenu("格式"); lookMenu = new JMenu("查看"); helpMenu = new JMenu("帮助"); menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(formatMenu); menuBar.add(lookMenu); menuBar.add(helpMenu); GridBagLayout layout = new GridBagLayout(); // 设成GridBagLayout布局 GridBagConstraints constraints = new GridBagConstraints(); this.setFont(new Font("SansSerif", Font.PLAIN, 14)); this.setLayout(layout); this.setTitle("风景日历"); // 设定标题 this.setIconImage(new ImageIcon("res\\title.jpg").getImage()); // 设定图标 constraints.fill = GridBagConstraints.BOTH; constraints.weightx = 0.5; constraints.weighty = 0.5; layout.setConstraints(listPanel, constraints); constraints.weightx = 8.0; constraints.weighty = 0.5; layout.setConstraints(tablePanel, constraints); this.setJMenuBar(menuBar); this.add(listPanel); this.add(tablePanel); this.setSize(this.getToolkit().getScreenSize().width * 3 / 4, this .getToolkit().getScreenSize().height * 3 / 4); // 设定窗体的大小 } private void showTime() { int hour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY); int minute = Calendar.getInstance().get(Calendar.MINUTE); int second = Calendar.getInstance().get(Calendar.SECOND); StringBuilder sb = new StringBuilder(); if (hour < 10) { sb.append("0" + hour); } else { sb.append(hour); } if (minute < 10) { sb.append(":0" + minute); } else { sb.append(":" + minute); } if (second < 10) { sb.append(":0" + second); } else sb.append(":" + second); label.setFont(new Font("SansSerif", Font.BOLD, 12)); label.setForeground(Color.BLACK); label.setText(sb.toString()); } class MyTableModel extends AbstractTableModel // 表格模型类,提供表格数据 { private static final long serialVersionUID = 1L; String[] columnName = new String[] // 表格列名 { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" }; @Override public int getColumnCount() // 返回表格列数 { return columnName.length; } public int getRowCount() // 返回表格行数 { return 6; } public String getColumnName(int col) // 获得表格列名 { return columnName[col]; } public Class<? extends Object> getColumnClass(int c) { return getValueAt(0, c).getClass(); } public Object getValueAt(int rowIndex, int columnIndex) { int month = list.getSelectedIndex();// 获得列表的月份 int year = (Integer) spinner.getValue();// 获得spinner显示的年份 GregorianCalendar gc = new GregorianCalendar(year, month, 1); int dayOfWeek = gc.get(Calendar.DAY_OF_WEEK) - 1; // 获得这个月的第一天是星期几 int countDayInMonth = 0;// 某月的总天数,这里的月是从0-11,表示1-12月 if (month == 0 || month == 2 || month == 4 || month == 6 || month == 7 || month == 9 || month == 11) { countDayInMonth = 31; // 是31天的月份 } else if (month == 3 || month == 5 || month == 8 || month == 10) { countDayInMonth = 30; // 是30天的月份 } else if (gc.isLeapYear(year) && month == 1) { countDayInMonth = 29; // 闰年2月 } else if (!gc.isLeapYear(year) && month == 1) { countDayInMonth = 28; // 非闰年2月 } String value = ""; // 因为返回值是Object类型,所以不能直接返回int类型的数据,所以转换成String类型 if (rowIndex == 0) // 第一列的数据 { if (columnIndex < dayOfWeek) { value = ""; } else { value = "" + (columnIndex - dayOfWeek + 1); } } else // 其余列的数据 { if (((rowIndex - 1) * 7) + (columnIndex + 1 + 7 - dayOfWeek) <= countDayInMonth) value = (((rowIndex - 1) * 7) + (columnIndex + 1 + 7 - dayOfWeek)) + ""; } return value; } } @SuppressWarnings("rawtypes") class MyListCellRenderer extends JLabel implements ListCellRenderer // 列表元素绘制类继承自JLabel,实现ListCellRenderer接口 { private static final long serialVersionUID = 1L; public Component getListCellRendererComponent(JList list, // the list Object value, // value to display int index, // cell index boolean isSelected, // is the cell selected boolean cellHasFocus) // does the cell have focus { String s = value.toString().trim(); // 获取选中元素的字符内容 setText(s); // 显示这个字符 Dimension dimension = list.getSize(); // 设定这个每个元素的大小 int height = dimension.height / 12; int width = dimension.width; setSize(width, height); if (isSelected) // 如果该元素被选中,则背景色为红色 { setBackground(Color.red); setForeground(list.getSelectionBackground()); } else // 未被选中的元素背景色显示为灰色,前景色为粉红色 { setBackground(Color.gray); setForeground(Color.pink); } setIcon(new ImageIcon("res\\mon.jpg")); // 设定该元素的图标 setEnabled(list.isEnabled()); setFont(new Font("SansSerif", Font.PLAIN, 20)); // 设定字体大小 setOpaque(true); return this; } } class MyTableRenderer extends JLabel implements TableCellRenderer { private static final long serialVersionUID = 1L; public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if ((Calendar.getInstance().get(Calendar.DAY_OF_MONTH) + "") // 如果这个标签上的值等于该天的值 .equals(value) && flag == true // 标记为true && list.getSelectedIndex() == Calendar.getInstance().get( Calendar.MONTH) // 列表显示的月份是该月的值 && (Integer) spinner.getValue() == Calendar.getInstance() .get(Calendar.YEAR))// spinner显示的年份是该年 { setFont(new Font("SansSerif", Font.PLAIN, 40)); // 设定字体大小 setText((String) value); // 显示日期字符串 setBorder(UIManager.getBorder("Table.focusCellHighlightBorder")); setForeground(Color.RED); // 设定字符串颜色 flag = false; } else // 如果不是改日的标签上的值 { setFont(new Font("SansSerif", Font.PLAIN, 40)); // 设定字体大小 setText((String) value); // 显示标签上的日期字符串 if (hasFocus) // 如果是被点中的表格的单元格 { setBorder(UIManager .getBorder("Table.focusCellHighlightBorder")); // 设定边框 setForeground(Color.RED);// 设定日期字符串颜色 } else { setForeground(null); setBorder(null); } } return this; } } } ```
两个日期之间的天数计算,计算结果会有误差,请问我有什么地方考虑不周到?
/** * 计算两个日期之间的天数 * 比如2016年4月10日到1991年2月2日是正确的,2016年4月10日到2134年5月15日 * 就差了两天 */ import java.util.Scanner; public class Test03 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入两个日期"); int year1 = scanner.nextInt(); int month1 = scanner.nextInt(); int day1 = scanner.nextInt(); int year2 = scanner.nextInt(); int month2 = scanner.nextInt(); int day2 = scanner.nextInt(); System.out.println("两个日期相差"+ Math.abs(switch1(year1, month1, day1) - switch1(year2, month2, day2)) + "天"); } /** * 该方法用于做闰年判断 * 是闰年返回true,不是闰年则返回false * return boolean; * @param year * @return */ public static boolean isLeapYear(int year) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { return true; } return false; } /** * 该方法用于获取某年在某个月的天数 * @param year * @param month * @return */ public static int daysOfMonth(int year, int month) { switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 2: if (isLeapYear(year)) { return 29; } else { return 28; } case 4: case 6: case 9: case 11: return 30; default: throw new RuntimeException("月份输入有误"); } } /** * 该方法用来将一个日期转化为距公元0年的天数; * 负数为公元前的,正数为公元后; * @param year * @param month * @param day * @return */ public static int switch1(int year, int month, int day) { int y = 0;//给定年份到公元0年的天数 int temp = 0;//中间变量,用来获取当前年份的天数的; /* * * 1.如果year=0,只需计算当前月到元月的天数(不含本月)m+day * 2.若year>0,计算当前年份到公元0年的天数(不含本年)y+m+day * 3.若year<0;此时y我负值y+m+day; */ while(!(year==0)){ if(year>0){ temp=isLeapYear(year-1)?366:365; year--; }else{ temp=-(isLeapYear(year)?366:365); year++; } y+=temp; } int m = 0;//当前月在这一年中的已过的天数,不包含本月 for (; month > 1; month--) { m += daysOfMonth(year, month - 1); } return (y + m + day);//年月日相加获得天数 } }
小白求救!各位大神麻烦帮我看下这个select显示的内容为什么不变化
经过各位大神的指点,我对代码进行了修改,解决了月份和日期的显示问题。但是现在还有一个毛病没想明白,就是年份那一框不管选择哪一年,显示的都是请选择,我鼠标都戳爆了也没用,就像图上这样。![图片说明](https://img-ask.csdn.net/upload/201905/17/1558076623_363745.png)抓瞎中。。。跪求各位大神不吝赐教。(附上修改后的代码) ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> //这个方法是点击年份下拉框后显示1900至今的所有年份 function GetYear() { var yearNode = document.getElementById("year"); //要调用Date的方法,就必须创建其对象,不能直接用类名调用 var date = new Date(); //这里获取的是从1900年到现在的经过的年数 var year = date.getFullYear(); //alert(time);//测试代码 //要对之前的数据进行删除,否则会累加,不能对i进行变化,否则会无法全部删除 //在删除之前要先获取yearNode的子节点个数 var children = yearNode.childNodes; //这里之前出错了,因为忘记加上.length了 for (var i = 2; i < children.length;) { //alert(children.length); yearNode.removeChild(children[i]); } //yearNode.length = 1; //这里是将各个年份作为option添加进代表年份的select下拉框中 for (var i = 1900; i <= year; i ++) { var option = document.createElement("option"); option.innerHTML = i; //option.value = i; yearNode.appendChild(option); } } //这个方法是年份下拉框的内容发生变化时会运行的内容 function ChooseYear() { //月份 var monthNode = document.getElementById("month"); monthNode.length = 1; for (var i = 1; i <= 12; i ++) { var option = document.createElement("option"); option.innerHTML = i; option.value = i; monthNode.appendChild(option); } } function ChooseMonth() { var yearNode = document.getElementById("year"); var monthNode = document.getElementById("month"); //日期 var dateNode = document.getElementById("date"); dateNode.length = 1; if(monthNode.value == 1|| monthNode.value == 3|| monthNode.value == 5|| monthNode.value == 7|| monthNode.value == 8|| monthNode.value == 10|| monthNode.value == 12) { for (var i = 1; i <= 31; i ++) { var option = document.createElement("option"); option.innerHTML = i; dateNode.appendChild(option); } } else if (monthNode.value == 4|| monthNode.value == 6|| monthNode.value == 9|| monthNode.value == 11) { for (var i = 1; i <= 30; i ++) { var option = document.createElement("option"); option.innerHTML = i; dateNode.appendChild(option); } } else if(monthNode.value == 2&& yearNode.value%4 == 0) { for (var i = 1; i <= 29; i ++) { var option = document.createElement("option"); option.innerHTML = i; dateNode.appendChild(option); } } else if(monthNode.value == 2&& yearNode.value%4 != 0) { for (var i = 1; i <= 28; i ++) { var option = document.createElement("option"); option.innerHTML = i; dateNode.appendChild(option); } } } </script> </head> <body> <select id="year" onclick="GetYear()" onchange="ChooseYear()"> <option>请选择</option> </select>年 <select id="month" onchange="ChooseMonth()"> <option>请选择</option> </select>月 <select id="date"> <option>请选择</option> </select>日 </body> </html> ```
小白求救!各位大神麻烦帮我看看这个select显示的内容为什么不变化
``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> //这个方法是点击年份下拉框后显示1900至今的所有年份 function GetYear() { var yearNode = document.getElementById("year"); //要调用Date的方法,就必须创建其对象,不能直接用类名调用 var date = new Date(); //这里获取的是从1900年到现在的经过的年数 var year = date.getFullYear(); //alert(time);//测试代码 //要对之前的数据进行删除,否则会累加,不能对i进行变化,否则会无法全部删除 //在删除之前要先获取yearNode的子节点个数 var children = yearNode.childNodes; //这里之前出错了,因为忘记加上.length了 for (var i = 2; i < children.length;) { //alert(children.length); yearNode.removeChild(children[i]); } //yearNode.length = 1; //这里是将各个年份作为option添加进代表年份的select下拉框中 for (var i = 1900; i <= year; i ++) { var option = document.createElement("option"); option.innerHTML = i; //option.value = i; yearNode.appendChild(option); } } //这个方法是年份下拉框的内容发生变化时会运行的内容 function ChooseTime() { /*var yearNode = document.getElementById("year"); //要调用Date的方法,就必须创建其对象,不能直接用类名调用 var date = new Date(); //这里获取的是从1900年到现在的经过的年数 var year = date.getFullYear(); //alert(time);//测试代码 yearNode.length = 1; //这里是将各个年份作为option添加进代表年份的select下拉框中 for (var i = 1900; i <= year; i ++) { var option = document.createElement("option"); option.innerHTML = i; yearNode.appendChild(option); }*/ //月份 var monthNode = document.getElementById("month"); monthNode.length = 1; for (var i = 1; i <= 12; i ++) { var option = document.createElement("option"); option.innerHTML = i; option.value = i; monthNode.appendChild(option); } //日期 var dateNode = document.getElementById("date"); dateNode.length = 1; if(monthNode.value == 1|| monthNode.value == 3|| monthNode.value == 5|| monthNode.value == 7|| monthNode.value == 8|| monthNode.value == 10|| monthNode.value == 12) { for (var i = 1; i <= 31; i ++) { var option = document.createElement("option"); option.innerHTML = i; dateNode.appendChild(option); } } else if (monthNode.value == 4|| monthNode.value == 6|| monthNode.value == 9|| monthNode.value == 11) { for (var i = 1; i <= 30; i ++) { var option = document.createElement("option"); option.innerHTML = i; dateNode.appendChild(option); } } else if(monthNode.value == 2&& yearNode.value%4 == 0) { for (var i = 1; i <= 29; i ++) { var option = document.createElement("option"); option.innerHTML = i; dateNode.appendChild(option); } } else if(monthNode.value == 2&& yearNode.value%4 != 0) { for (var i = 1; i <= 28; i ++) { var option = document.createElement("option"); option.innerHTML = i; dateNode.appendChild(option); } } } </script> </head> <body> <select id="year" onclick="GetYear()" onchange="ChooseTime()"> <option>请选择</option> </select>年 <select id="month" onchange="ChooseTime()"> <option>请选择</option> </select>月 <select id="date"> <option>请选择</option> </select>日 </body> </html> ``` 情况就是这么个情况,option倒是添加进去了,而且onchange也触发了,但是年份那个框显示的内容就是不变化,不知道问题出在哪了,小白求各位大神解救。
Android的DatePickerDialog的使用报错
使用了一个弹窗的日期选择器,可是设置参数的时候老报错,说没有相应的构造函数。但我明明就是按照需要的参数写的 ``` package com.example.love; import java.util.Calendar; import java.util.Date; import android.app.Activity; import android.app.ActionBar; import android.app.DatePickerDialog; import android.app.DatePickerDialog.OnDateSetListener; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.DatePicker; import android.widget.ImageButton; import android.os.Build; public class MainActivity extends Activity { private ImageButton ib;//图标按钮 private Date nowtime;//当前时间 private Date time;//在一起的时间 private int nowyear;//当前的年份 private int year;//在一起的年份 private int nowmouth;//当前的月份 private int mouth;//在一起的月份 private int nowday;//当前的日期 private int day;//在一起的日期 private int hour;//现在的小时 private int muinet;//现在的分钟 private int ss;//现在的秒 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main1); //获取当前的时间 Calendar date = Calendar.getInstance(); nowyear = date.get(date.YEAR); nowmouth = date.get(date.MONTH); nowday = date.get(date.DAY_OF_MONTH); ib = (ImageButton) findViewById(R.id.imageButton); ib.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { new DatePickerDialog(this, new OnDateSetListener() { @Override public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) { // TODO 自动生成的方法存根 } }, nowyear, nowmouth, nowday).show(); }); } } ```
CCF节日问题(测试不完全正确)
/*问题描述 有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日。 现在,给你a,b,c和y1, y2(1850 ≤ y1, y2 ≤ 2050),希望你输出从公元y1年到公元y2年间的每年的a月的第b个星期c的日期。 提示:关于闰年的规则:年份是400的整数倍时是闰年,否则年份是4的倍数并且不是100的倍数时是闰年,其他年份都不是闰年。例如1900年就不是闰年,而2000年是闰年。 为了方便你推算,已知1850年1月1日是星期二。 输入格式 输入包含恰好一行,有五个整数a, b, c, y1, y2。其中c=1, 2, ……, 6, 7分别表示星期一、二、……、六、日。 输出格式 对于y1和y2之间的每一个年份,包括y1和y2,按照年份从小到大的顺序输出一行。 如果该年的a月第b个星期c确实存在,则以"yyyy/mm/dd"的格式输出,即输出四位数的年份,两位数的月份,两位数的日期,中间用斜杠“/”分隔,位数不足时前补零。 如果该年的a月第b个星期c并不存在,则输出"none"(不包含双引号)。 样例输入 5 2 7 2014 2015 样例输出 2014/05/11 2015/05/10 评测用例规模与约定 所有评测用例都满足:1 ≤ a ≤ 12,1 ≤ b ≤ 5,1 ≤ c ≤ 7,1850 ≤ y1, y2 ≤ 2050。*/ import java.util.*; public class Festival { public static void main(String [] args) { Scanner sc = new Scanner(System.in); int month = sc.nextInt(); int num = sc.nextInt(); int week = sc.nextInt(); int begin_year = sc.nextInt(); int end_year = sc.nextInt(); begin_year = Math.min(begin_year,end_year); end_year = Math.max(begin_year,end_year); disPlay(month,num,week,begin_year,end_year); } public static void disPlay(int month,int num,int week,int begin_year,int end_year) //显示输出begin_year~end_year之间的情况。 { for(int i = begin_year ; i<= end_year ; i++) { print(month,num,week,i); } } public static void print(int month,int num,int week,int year)//显示输出某年的情况。 { int temp = week+7-getMonthFirst(year,month)+1; int day = 0; if(temp!=7) day = (week+7-getMonthFirst(year,month)+1)%7+(num-1)*7; else day = (week+7-getMonthFirst(year,month)+1)%7+num*7; if(day<=DaysPerMonth(year,month)) { System.out.println(year+"/"+add_0(month)+"/"+add_0(day)); } else System.out.println("none"); } public static String add_0(int month_or_day)//当某月或某日小于10是,前面添加0。 { if(month_or_day<10) return 0+Integer.toString(month_or_day); else return Integer.toString(month_or_day); } public static int getMonthFirst(int year,int month)//获取某年某月的第一天星期几 { return (int)((DaysAll(year,month)%7+2)%7); } public static int DaysPerMonth(int year,int month)//获取某年某月的天数 { int days = 0; switch(month) { case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 : days = 31; break; case 2: if(judgeYear(year)==true) days = 29; else days = 28; break; case 4 : case 6 : case 9 : case 11 : days = 30; break; } return days; } public static long getDaysYears(int year)//获取从1850至某年(不包含)的总天数 { int count = 0; for(int i=1850 ; i<year ; i++) { if(judgeYear(i)==true) count++; } return 366*count+365*(year-1850-count); } public static boolean judgeYear(int year)//判断平闰年 { if((year%400==0)||((year%4==0)&&(year%100!=0))) return true; return false; } public static long DaysAll(int year,int month)//获取从1850/01/01至某年某月(不包含)的总天数 { long add_months = 0; for(int i=1;i<month;i++) { add_months = add_months+DaysPerMonth(year,i); } return add_months+getDaysYears(year); } } 通过了部分测试,得了80分,改了很多次,想了很多可能,都没有解决漏洞。恳请大神指点。
制作一个考勤表格如何实现鼠标拖动选择多个单元格然后右键菜单实现批量考勤
![图片说明](https://img-ask.csdn.net/upload/201906/19/1560937583_947710.png) 用bootstraptable做了一个考勤的表格。 请问怎么鼠标拖动怎么选取多个单元格弹出菜单然后批量设置呢? html代码 ``` <button class="btn btn-primary" type="button" id="searchBtn_Table" onclick="ifnull()">查询</button> <div class="col-sm-12" id="singlelast"> </div> ``` js ``` function ifnull() { if ($("#TeamGroupName").val() == "0") { zcy.alert.error("请选择需要查询的班组"); return false; } if ($("#date").val() == "") { zcy.alert.error("请选择需要查询的时间"); return false; } //get数据 getAttendanceResult(); //加载表头日期 var date = $("#date").val(); var year = parseInt(date.split("-")[0]); var month = parseInt(date.split("-")[1]); var daycount = getLastDay(year, month); //得到选中月份的最大天数 MaxDays = daycount; selectYear = year; $("#singlelast").empty(); $("#singlelast").append("<table id='tablesinglelast' data-toggle='table' align='center' ></table>") var appendPos = $("#tablesinglelast"); //$("#tablesinglelast").bootstrapTable('destroy'); appendPos.append("<thead><tr>"+ "<th data-field='EmployeeId' rowspan='2' id='employeeName' data-valign='middle' data-align='center'> 工号</th > " + "<th id='lineTd' data-field='EmployeeName' data-valign='middle' rowspan='2' data-align='center'>" + "<span style='float:left;margin-top:20px;'>姓名</span>" + "<span style='float:left;margin-top:-10px;'>日期</span>"+ "</th > " + "<th data-formatter='OvertimeLength' data-valign='middle' colspan='2' data-align='center'>加班</th>" + "<th data-formatter='Askleavelength' data-valign='middle' colspan='2' data-align='center'>请假</th>" + "<th data-valign='middle' data-align='center'>工伤</th>" + "</tr><tr></tr></thead>"); //加载table_foot var table_foot = $("#table_foot"); table_foot.css("display","block"); for (var i = 1; i <= daycount; i++) { var appendPos2 = $("#tablesinglelast").children().eq(0).children().eq(0).children().eq(i+1 - 1); appendPos2.after("<th data-valign='middle' colspan='1' data-align='center'>" + i + "</th>"); } for (var i = 1; i <= daycount; i++) { var appendPos3 = $("#tablesinglelast").children().eq(0).children().eq(1); var month2 = (month > 9) ? ("" + month) : ("0" + month); var day = (i > 9) ? ("" + i) : ("0" + i); var heredate = year + "-" + month2 + "-" + day; var weekday = new Date(heredate).getDay(); text = ""; switch (weekday) { case 0: text = "日"; break; case 1: text = "一"; break; case 2: text = "二"; break; case 3: text = "三"; break; case 4: text = "四"; break; case 5: text = "五"; break; case 6: text = "六"; break; } appendPos3.append("<th data-formatter='DateAttendance' data-align='center' data-field='" + year + "-" + month2 + "-" + day + "'>" + text + "</th>"); selectMonth = month2; } var appendPos3 = $("#tablesinglelast").children().eq(0).children().eq(1); appendPos3.append("<th data-formatter='OverDay' data-align='center'>天</th>"+ "<th data-formatter='OverHour' data-align='center'>时</th>"+ "<th data-formatter='AskleaveDay' data-align='center'>天</th>"+ "<th data-formatter='AskleaveHour' data-align='center'>时</th>"+ "<th data-align='center'>天</th>" ); $('.context').contextmenu({ target: '#context-menu', before: function (e, context) { // execute code before context menu if shown }, onItem: function (context, e) { // execute on menu item selection } }); readyTable(); $("#singlelast tr td").addClass(); } function getLastDay(year, month) { var new_year = year; //取当前的年份 var new_month = month++;//取下一个月的第一天,方便计算(最后一天不固定) if (month > 12) //如果当前大于12月,则年份转到下一年 { new_month -= 12; //月份减 new_year++; //年份增 } var new_date = new Date(new_year, new_month, 1); //取当年当月中的第一天 return (new Date(new_date.getTime() - 1000 * 60 * 60 * 24)).getDate();//获取当月最后一天日期 } function readyTable() { $("#tablesinglelast").bootstrapTable({ //bootstraptable 插件 pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 10, //每页的记录行数(*) pageList: [10, 20, 30], pagination: true, //是否显示分页(*) sortable: true, //是否启用排序 sortOrder: 'asc', striped: true, //行间隔色 showExport: true, //是否显示导出 exportDataType: 'all', search: true, detailView: false,//父子表 onExpandRow: function (index, row, $detail) { oInitInitSubTable(index, row, $detail); } }); } function getAttendanceResult() { var TeamGroupId = $("#TeamGroupName").val(); var date = $("#date").val(); $.ajax({ url: "/Employee/getAttendanceResult", type: "post", dataType: 'json', data: { "TeamGroupId": TeamGroupId, "date": date, }, success: function (data) { chkData = eval(data); $('#tablesinglelast').bootstrapTable('load', chkData); }, error: function () { zcy.alert.error("获取考勤表失败"); } }); } ``` 我用bootstrap-table-contextmenu 在getAttendanceResult实现了一个右键菜单 ``` function getAttendanceResult() { //鼠标右键菜单 $('#tablesinglelast').bootstrapTable({ contextMenu: '#context-menu', onContextMenuItem: function(row, $el){ if ($el.data("item") == "properfunctioning") { //var msg = "你确定要设置为考勤?"; //zcy.alert.confirm("请确认操作",msg); console.log(row); zcy.alert.success(""+row+"的考勤记录"); } } }); var TeamGroupId = $("#TeamGroupName").val(); var date = $("#date").val(); $.ajax({ url: "/Employee/getAttendanceResult", type: "post", dataType: 'json', data: { "TeamGroupId": TeamGroupId, "date": date, }, success: function (data) { chkData = eval(data); $('#tablesinglelast').bootstrapTable('load', chkData); }, error: function () { zcy.alert.error("获取考勤表失败"); } }); } ``` ![图片说明](https://img-ask.csdn.net/upload/201906/20/1561022981_497748.png) 但是获取的都是一行的值,获取不到单元格的值,该怎么办呢?
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
python 简易微信实现(注册登录+数据库存储+聊天+GUI+文件传输)
socket+tkinter详解+简易微信实现 历经多天的努力,查阅了许多大佬的博客后终于实现了一个简易的微信O(∩_∩)O~~ 简易数据库的实现 使用pands+CSV实现数据库框架搭建 import socket import threading from pandas import * import pymysql import csv # 创建DataFrame对象 # 存储用户数据的表(...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
开源并不是你认为的那些事
点击上方蓝字 关注我们开源之道导读所以 ————想要理清开源是什么?先要厘清开源不是什么,名正言顺是句中国的古代成语,概念本身的理解非常之重要。大部分生物多样性的起源,...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
shell脚本基础
shell简介:shell是一种脚本语言,可以使用逻辑判断、循环等语法,可以自定义函数,是系统命令的集合 文章目录shell脚本结构和执行方法shell脚本中date命令的用法 shell脚本结构和执行方法 1.shell脚本开头需要加#!/bin/bash 2.以#开头的行作为注释 3.脚本的名字以.sh结尾,用于区分这是一个shell脚本 4.执行方法有两种: 1)bash test.sh 2...
8年经验面试官详解 Java 面试秘诀
作者 |胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。 Java程序员准备和投递简历的实...
面试官如何考察你的思维方式?
1.两种思维方式在求职面试中,经常会考察这种问题:北京有多少量特斯拉汽车?某胡同口的煎饼摊一年能卖出多少个煎饼?深圳有多少个产品经理?一辆公交车里能装下多少个乒乓球?一个正常成年人有多少根头发?这类估算问题,被称为费米问题,是以科学家费米命名的。为什么面试会问这种问题呢?这类问题能把两类人清楚地区分出来。一类是具有文科思维的人,擅长赞叹和模糊想象,它主要依靠的是人的第一反应和直觉,比如小孩...
碎片化的时代,如何学习
今天周末,和大家聊聊学习这件事情。 在如今这个社会,我们的时间被各类 APP 撕的粉碎。 刷知乎、刷微博、刷朋友圈; 看论坛、看博客、看公号; 等等形形色色的信息和知识获取方式一个都不错过。 貌似学了很多,但是却感觉没什么用。 要解决上面这些问题,首先要分清楚一点,什么是信息,什么是知识。 那什么是信息呢? 你一切听到的、看到的,都是信息,比如微博上的明星出轨、微信中的表情大战、抖音上的...
17张图带你解析红黑树的原理!保证你能看懂!
二叉查找树 由于红黑树本质上就是一棵二叉查找树,所以在了解红黑树之前,咱们先来看下二叉查找树。 二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树: 若任意结点的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若任意结点的...
用Go重构C语言系统,这个抗住春晚红包的百度转发引擎承接了万亿流量
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)11 月 20 日,百度的万亿流量转发引擎 BFE 登上了 GitHub Trending Top 3,今日 Star 已突破 270。事实上,这个曾经抗住 2019 年春晚抢红包的转发引擎早已于 2019 年夏在 GitHub 上开源,今天突然再次引发关注,那我们不妨来回顾一下这个项目。 首先奉上 Gi...
腾讯“疯狂”开源!
作者 | 马超 责编 | 胡巍巍 出品 | CSDN(ID:CSDNnews) 近日,腾讯自研的万亿级分布式消息中间件TubeMQ正式开源,并捐赠给Apache基金会,成为基金会官方认可的Incubator项目。 我们知道与TubeMQ功能类似的kafka是领英公司在早在10年前捐赠给Apache基金会的金牌项目,而那时的腾讯还在忙于3Q大战,公司文化也相对封闭,甚至连目前社交领...
相关热词 c#中dns类 c#合并的excel c# implicit c#怎么保留3个小数点 c# 串口通信、 网络调试助手c# c# 泛型比较大小 c#解压分卷问题 c#启动居中 c# 逻辑或运算符
立即提问