JS日期和时间选择控件

js 代码
 
  1. /**//** 
  2.  *本日历选择控件由tiannet根据前人经验完善而得。大部分代码来自meizz的日历控件。 
  3.  *tiannet添加了时间选择功能、select,object标签隐藏功能,还有其它小功能。 
  4.  *使用方法: 
  5.  * (1)只选择日期   <input type="text" name="date"   readOnly onClick="setDay(this);"> 
  6.  * (2)选择日期和小时  <input type="text" name="dateh"  readOnly onClick="setDayH(this);"> 
  7.  * (3)选择日期和小时及分钟 <input type="text" name="datehm" readOnly onClick="setDayHM(this);"> 
  8.  *设置参数的方法 
  9.  * (1)设置日期分隔符    setDateSplit(strSplit);默认为"-" 
  10.  * (2)设置日期与时间之间的分隔符  setDateTimeSplit(strSplit);默认为" " 
  11.  * (3)设置时间分隔符    setTimeSplit(strSplit);默认为":" 
  12.  * (4)设置(1),(2),(3)中的分隔符  setSplit(strDateSplit,strDateTimeSplit,strTimeSplit); 
  13.  * (5)设置开始和结束年份    setYearPeriod(intDateBeg,intDateEnd) 
  14.  *说明: 
  15.  * 默认返回的日期时间格式如同:2005-02-02 08:08 
  16.  */  
  17. //------------------ 样式定义 ---------------------------//  
  18. //功能按钮同样样式  
  19. var s_tiannet_turn_base = "height:16px;font-size:9pt;color:white;border:0 solid #CCCCCC;cursor:hand;background-color:#2650A6;";  
  20. //翻年、月等的按钮  
  21. var s_tiannet_turn = "width:28px;" + s_tiannet_turn_base;  
  22. //关闭、清空等按钮样式  
  23. var s_tiannet_turn2 = "width:22px;" + s_tiannet_turn_base;  
  24. //年选择下拉框  
  25. var s_tiannet_select = "width:64px;display:none;";  
  26. //月、时、分选择下拉框  
  27. var s_tiannet_select2 = "width:46px;display:none;";  
  28. //日期选择控件体的样式  
  29. var s_tiannet_body = "width:150;background-color:#2650A6;display:none;z-index:9998;position:absolute;" +  
  30.   "border-left:1 solid #CCCCCC;border-top:1 solid #CCCCCC;border-right:1 solid #999999;border-bottom:1 solid #999999;";  
  31. //显示日的td的样式  
  32. var s_tiannet_day = "width:21px;height:20px;background-color:#D8F0FC;font-size:10pt;";  
  33. //字体样式  
  34. var s_tiannet_font = "color:#FFCC00;font-size:9pt;cursor:hand;";  
  35. //链接的样式  
  36. var s_tiannet_link = "text-decoration:none;font-size:9pt;color:#2650A6;";  
  37. //横线  
  38. var s_tiannet_line = "border-bottom:1 solid #6699CC";  
  39. //------------------ 变量定义 ---------------------------//  
  40. var tiannetYearSt = 1950;//可选择的开始年份  
  41. var tiannetYearEnd = 2010;//可选择的结束年份  
  42. var tiannetDateNow = new Date();  
  43. var tiannetYear = tiannetDateNow.getFullYear(); //定义年的变量的初始值  
  44. var tiannetMonth = tiannetDateNow.getMonth()+1; //定义月的变量的初始值  
  45. var tiannetDay = tiannetDateNow.getDate();  
  46. var tiannetHour = 8;//tiannetDateNow.getHours();  
  47. var tiannetMinute = 0;//tiannetDateNow.getMinutes();  
  48. var tiannetArrDay=new Array(42);          //定义写日期的数组  
  49. var tiannetDateSplit = "-";     //日期的分隔符号  
  50. var tiannetDateTimeSplit = " ";    //日期与时间之间的分隔符  
  51. var tiannetTimeSplit = ":";     //时间的分隔符号  
  52. var tiannetOutObject;      //接收日期时间的对象  
  53. var arrTiannetHide = new Array();//被强制隐藏的标签  
  54. var m_bolShowHour = false;//是否显示小时  
  55. var m_bolShowMinute = false;//是否显示分钟  
  56.   
  57. var m_aMonHead = new Array(12);         //定义阳历中每个月的最大天数  
  58.     m_aMonHead[0] = 31; m_aMonHead[1] = 28; m_aMonHead[2] = 31; m_aMonHead[3] = 30; m_aMonHead[4]  = 31; m_aMonHead[5]  = 30;  
  59.     m_aMonHead[6] = 31; m_aMonHead[7] = 31; m_aMonHead[8] = 30; m_aMonHead[9] = 31; m_aMonHead[10] = 30; m_aMonHead[11] = 31;  
  60. // ---------------------- 用户可调用的函数 -----------------------------//  
  61. //用户主调函数-只选择日期  
  62. function setDay(obj){  
  63.  tiannetOutObject = obj;  
  64.  //如果标签中有值,则将日期初始化为当前值  
  65.  var strValue = tiannetTrim(tiannetOutObject.value);  
  66.  if( strValue != "" ){  
  67.   tiannetInitDate(strValue);  
  68.  }  
  69.  tiannetPopCalendar();  
  70. }  
  71. //用户主调函数-选择日期和小时  
  72. function setDayH(obj){  
  73.  tiannetOutObject = obj;  
  74.  m_bolShowHour = true;  
  75.  //如果标签中有值,则将日期和小时初始化为当前值  
  76.  var strValue = tiannetTrim(tiannetOutObject.value);  
  77.  if( strValue != "" ){  
  78.   tiannetInitDate(strValue.substring(0,10));  
  79.   var hour = strValue.substring(11,13);  
  80.   if( hour < 10 ) tiannetHour = hour.substring(1,2);  
  81.  }  
  82.  tiannetPopCalendar();  
  83. }  
  84. //用户主调函数-选择日期和小时及分钟  
  85. function setDayHM(obj){  
  86.  tiannetOutObject = obj;  
  87.  m_bolShowHour = true;  
  88.  m_bolShowMinute = true;  
  89.  //如果标签中有值,则将日期和小时及分钟初始化为当前值  
  90.  var strValue = tiannetTrim(tiannetOutObject.value);  
  91.  if( strValue != "" ){  
  92.   tiannetInitDate(strValue.substring(0,10));  
  93.   var time = strValue.substring(11,16);  
  94.   var arr = time.split(tiannetTimeSplit);  
  95.   tiannetHour = arr[0];  
  96.   tiannetMinute = arr[1];  
  97.   if( tiannetHour < 10 ) tiannetHour = tiannetHour.substring(1,2);  
  98.   if( tiannetMinute < 10 ) tiannetMinute = tiannetMinute.substring(1,2);  
  99.  }  
  100.  tiannetPopCalendar();  
  101. }  
  102. //设置开始日期和结束日期  
  103. function  setYearPeriod(intDateBeg,intDateEnd){  
  104.  tiannetYearSt = intDateBeg;  
  105.  tiannetYearEnd = intDateEnd;  
  106. }  
  107. //设置日期分隔符。默认为"-"  
  108. function setDateSplit(strDateSplit){  
  109.  tiannetDateSplit = strDateSplit;  
  110. }  
  111. //设置日期与时间之间的分隔符。默认为" "  
  112. function setDateTimeSplit(strDateTimeSplit){  
  113.  tiannetDateTimeSplit = strDateTimeSplit;  
  114. }  
  115. //设置时间分隔符。默认为":"  
  116. function setTimeSplit(strTimeSplit){  
  117.  tiannetTimeSplit = strTimeSplit;  
  118. }  
  119. //设置分隔符  
  120. function setSplit(strDateSplit,strDateTimeSplit,strTimeSplit){  
  121.  tiannetDateSplit(strDateSplit);  
  122.  tiannetDateTimeSplit(strDateTimeSplit);  
  123.  tiannetTimeSplit(strTimeSplit);  
  124. }  
  125. //设置默认的日期。格式为:YYYY-MM-DD  
  126. function setDefaultDate(strDate){  
  127.  tiannetYear = strDate.substring(0,4);  
  128.  tiannetMonth = strDate.substring(5,7);  
  129.  tiannetDay = strDate.substring(8,10);  
  130. }  
  131. //设置默认的时间。格式为:HH24:MI  
  132. function setDefaultTime(strTime){  
  133.  tiannetHour = strTime.substring(0,2);  
  134.  tiannetMinute = strTime.substring(3,5);  
  135. }  
  136. // ---------------------- end 用户可调用的函数 -----------------------------//  
  137. //------------------ begin 页面显示部分 ---------------------------//  
  138. var weekName = new Array("日","一","二","三","四","五","六");  
  139. document.write('<div id="divTiannetDate" style="'+s_tiannet_body+'" style="本日历选择控件由tiannet根据前人经验完善而成!">');  
  140. document.write('<div align="center" id="divTiannetDateText" Author="tiannet" style="padding-top:2px;">');  
  141. document.write('<span id="tiannetYearHead" Author="tiannet" style="'+s_tiannet_font+'" '+  
  142.     'οnclick="spanYearCEvent();">&nbsp;年</span>');  
  143. document.write('<select id="selTianYear" style="'+s_tiannet_select+'" Author="tiannet"  '+  
  144.     ' onChange="tiannetYear=this.value;tiannetSetDay(tiannetYear,tiannetMonth);document.all.tiannetYearHead.style.display=\'\';'+ 
  145.     'this.style.display=\'none\';">');  
  146. for(var i=tiannetYearSt;i <= tiannetYearEnd;i ++){  
  147.  document.writeln('<option value="' + i + '">' + i + '年</option>');  
  148. }  
  149. document.write('</select>');  
  150. document.write('<span id="tiannetMonthHead" Author="tiannet" style="'+s_tiannet_font+'" '+  
  151.     'οnclick="spanMonthCEvent();">&nbsp;&nbsp;月</span>');  
  152. document.write('<select id="selTianMonth" style="'+s_tiannet_select2+'" Author="tiannet" '+  
  153.     'onChange="tiannetMonth=this.value;tiannetSetDay(tiannetYear,tiannetMonth);document.all.tiannetMonthHead.style.display=\'\';'+ 
  154.     'this.style.display=\'none\';">');  
  155. for(var i=1;i <= 12;i ++){  
  156.  document.writeln('<option value="' + i + '">' + i + '月</option>');  
  157. }  
  158. document.write('</select>');  
  159. //document.write('</div>');  
  160. //document.write('<div align="center" id="divTiannetTimeText" Author="tiannet">');  
  161. document.write('<span id="tiannetHourHead" Author="tiannet" style="'+s_tiannet_font+'display:none;" '+  
  162.     'οnclick="spanHourCEvent();">&nbsp;时</span>');  
  163. document.write('<select id="selTianHour" style="'+s_tiannet_select2+'display:none;" Author="tiannet" '+  
  164.     ' onChange="tiannetHour=this.value;tiannetWriteHead();document.all.tiannetHourHead.style.display=\'\';' + 
  165.     'this.style.display=\'none\';">');  
  166. for(var i=0;i <= 23;i ++){  
  167.  document.writeln('<option value="' + i + '">' + i + '时</option>');  
  168. }  
  169. document.write('</select>');  
  170. document.write('<span id="tiannetMinuteHead" Author="tiannet" style="'+s_tiannet_font+'display:none;" '+  
  171.     'οnclick="spanMinuteCEvent();">&nbsp;&nbsp;分</span>');  
  172. document.write('<select id="selTianMinute" style="'+s_tiannet_select2+'display:none;" Author="tiannet" '+  
  173.     '  onChange="tiannetMinute=this.value;tiannetWriteHead();document.all.tiannetMinuteHead.style.display=\'\';'+ 
  174.     'this.style.display=\'none\';">');  
  175. for(var i=0;i <= 59;i ++){  
  176.  document.writeln('<option value="' + i + '">' + i + '分</option>');  
  177. }  
  178. document.write('</select>');  
  179. document.write('</div>');  
  180. //输出一条横线  
  181. document.write('<div style="'+s_tiannet_line+'"></div>');  
  182. document.write('<div align="center" id="divTiannetTurn" style="border:0;" Author="tiannet">');  
  183. document.write('<input type="button" style="'+s_tiannet_turn+'" value="年↑" title="上一年" onClick="tiannetPrevYear();">');  
  184. document.write('<input type="button" style="'+s_tiannet_turn+'" value="年↓" title="下一年" onClick="tiannetNextYear();">&nbsp;');  
  185. document.write('<input type="button" style="'+s_tiannet_turn+'" value="月↑" title="上一月" onClick="tiannetPrevMonth();">');  
  186. document.write('<input type="button" style="'+s_tiannet_turn+'" value="月↓" title="下一月" onClick="tiannetNextMonth();">');  
  187. document.write('</div>');  
  188. //输出一条横线  
  189. document.write('<div style="'+s_tiannet_line+'"></div>');  
  190. document.write('<table border=0 cellspacing=0 cellpadding=0  bgcolor=white onselectstart="return false">');  
  191. document.write(' <tr style="background-color:#2650A6;font-size:10pt;color:white;height:22px;" Author="tiannet">');  
  192. for(var i =0;i < weekName.length;i ++){  
  193.  //输出星期  
  194.  document.write('<td width="21" align="center" Author="tiannet">' + weekName[i] + '</td>');  
  195. }  
  196. document.write(' </tr>');  
  197. document.write('</table>');  
  198. //输出天的选择  
  199. document.write('<table border=0 cellspacing=1 cellpadding=0  bgcolor=white onselectstart="return false">');  
  200. var n = 0;  
  201. for (var i=0;i<5;i++) {  
  202.  document.write (' <tr align=center id="trTiannetDay' + i + '" >');  
  203.  for (var j=0;j<7;j++){  
  204.   document.write('<td align="center" id="tdTiannetDay' + n + '" '+  
  205.     'onClick="tiannetDay=this.innerText;tiannetSetValue(true);" '  
  206.    +' style="' + s_tiannet_day + '">&nbsp;</td>');  
  207.   n ++;  
  208.  }  
  209.  document.write (' </tr>');  
  210. }  
  211. document.write (' <tr align=center id="trTiannetDay5" >');  
  212. document.write('<td align="center" id="tdTiannetDay35" onClick="tiannetDay=this.innerText;tiannetSetValue(true);" '  
  213.     +' style="' + s_tiannet_day + '">&nbsp;</td>');  
  214. document.write('<td align="center" id="tdTiannetDay36" onClick="tiannetDay=this.innerText;tiannetSetValue(true);" '  
  215.     +' style="' + s_tiannet_day + '">&nbsp;</td>');  
  216. document.write('<td align="right" colspan="5"><a href="javascript:tiannetClear();" style="' + s_tiannet_link + '">清空</a>'+  
  217.     '&nbsp;<a href="javascript:tiannetHideControl();" style="' + s_tiannet_link + '">关闭</a>' +  
  218.     '&nbsp;<a href="javascript:tiannetSetValue(true);" style="' + s_tiannet_link + '">确定</a>&nbsp;' +  
  219.     '</td>');  
  220. document.write (' </tr>');  
  221. document.write('</table>');  
  222. document.write('</div>');  
  223. //------------------ end 页面显示部分 ---------------------------//  
  224. //------------------ 显示日期时间的span标签响应事件 ---------------------------//  
  225. //单击年份span标签响应  
  226. function spanYearCEvent(){  
  227.  hideElementsById(new Array("selTianYear","tiannetMonthHead"),false);  
  228.  if(m_bolShowHour) hideElementsById(new Array("tiannetHourHead"),false);  
  229.  if(m_bolShowMinute) hideElementsById(new Array("tiannetMinuteHead"),false);  
  230.  hideElementsById(new Array("tiannetYearHead","selTianMonth","selTianHour","selTianMinute"),true);  
  231. }  
  232. //单击月份span标签响应  
  233. function spanMonthCEvent(){  
  234.  hideElementsById(new Array("selTianMonth","tiannetYearHead"),false);  
  235.  if(m_bolShowHour) hideElementsById(new Array("tiannetHourHead"),false);  
  236.  if(m_bolShowMinute) hideElementsById(new Array("tiannetMinuteHead"),false);  
  237.  hideElementsById(new Array("tiannetMonthHead","selTianYear","selTianHour","selTianMinute"),true);  
  238. }  
  239. //单击小时span标签响应  
  240. function spanHourCEvent(){  
  241.  hideElementsById(new Array("tiannetYearHead","tiannetMonthHead"),false);  
  242.  if(m_bolShowHour) hideElementsById(new Array("selTianHour"),false);  
  243.  if(m_bolShowMinute) hideElementsById(new Array("tiannetMinuteHead"),false);  
  244.  hideElementsById(new Array("tiannetHourHead","selTianYear","selTianMonth","selTianMinute"),true);  
  245. }  
  246. //单击分钟span标签响应  
  247. function spanMinuteCEvent(){  
  248.  hideElementsById(new Array("tiannetYearHead","tiannetMonthHead"),false);  
  249.  if(m_bolShowHour) hideElementsById(new Array("tiannetHourHead"),false);  
  250.  if(m_bolShowMinute) hideElementsById(new Array("selTianMinute"),false);  
  251.  hideElementsById(new Array("tiannetMinuteHead","selTianYear","selTianMonth","selTianHour"),true);  
  252. }  
  253. //根据标签id隐藏或显示标签  
  254. function hideElementsById(arrId,bolHide){  
  255.  var strDisplay = "";  
  256.  if(bolHide) strDisplay = "none";  
  257.  for(var i = 0;i < arrId.length;i ++){  
  258.   var obj = document.getElementById(arrId[i]);  
  259.   obj.style.display = strDisplay;  
  260.  }  
  261. }  
  262. //------------------ end 显示日期时间的span标签响应事件 ---------------------------//  
  263. //判断某年是否为闰年  
  264. function isPinYear(year){  
  265.  var bolRet = false;  
  266.  if (0==year%4&&((year%100!=0)||(year%400==0))) {  
  267.   bolRet = true;  
  268.  }  
  269.  return bolRet;  
  270. }  
  271. //得到一个月的天数,闰年为29天  
  272. function getMonthCount(year,month){  
  273.  var c=m_aMonHead[month-1];  
  274.  if((month==2)&&isPinYear(year)) c++;  
  275.  return c;  
  276. }  
  277. //重新设置当前的日。主要是防止在翻年、翻月时,当前日大于当月的最大日  
  278. function setRealDayCount() {  
  279.  if( tiannetDay > getMonthCount(tiannetYear,tiannetMonth) ) {  
  280.   //如果当前的日大于当月的最大日,则取当月最大日  
  281.   tiannetDay = getMonthCount(tiannetYear,tiannetMonth);  
  282.  }  
  283. }  
  284. //在个位数前加零  
  285. function addZero(value){  
  286.  if(value < 10 ){  
  287.   value = "0" + value;  
  288.  }  
  289.  return value;  
  290. }  
  291. //取出空格  
  292. function tiannetTrim(str) {  
  293.  return str.replace(/(^\s*)|(\s*$)/g,"");  
  294. }  
  295. //为select创建一个option  
  296. function createOption(objSelect,value,text){  
  297.  var option = document.createElement("OPTION");  
  298.  option.value = value;  
  299.  option.text = text;  
  300.  objSelect.options.add(option);  
  301. }  
  302. //往前翻 Year  
  303. function tiannetPrevYear() {  
  304.  if(tiannetYear > 999 && tiannetYear <10000){tiannetYear--;}  
  305.  else{alert("年份超出范围(1000-9999)!");}  
  306.  tiannetSetDay(tiannetYear,tiannetMonth);  
  307.  //如果年份小于允许的最小年份,则创建对应的option  
  308.  if( tiannetYear < tiannetYearSt ) {  
  309.   tiannetYearSt = tiannetYear;  
  310.   createOption(document.all.selTianYear,tiannetYear,tiannetYear + "年");  
  311.  }  
  312.  checkSelect(document.all.selTianYear,tiannetYear);  
  313.  tiannetWriteHead();  
  314. }  
  315. //往后翻 Year  
  316. function tiannetNextYear() {  
  317.  if(tiannetYear > 999 && tiannetYear <10000){tiannetYear++;}  
  318.  else{alert("年份超出范围(1000-9999)!");return;}  
  319.  tiannetSetDay(tiannetYear,tiannetMonth);  
  320.  //如果年份超过允许的最大年份,则创建对应的option  
  321.  if( tiannetYear > tiannetYearEnd ) {  
  322.   tiannetYearEnd = tiannetYear;  
  323.   createOption(document.all.selTianYear,tiannetYear,tiannetYear + "年");  
  324.  }  
  325.  checkSelect(document.all.selTianYear,tiannetYear);  
  326.  tiannetWriteHead();  
  327. }  
  328. //选择今天  
  329. function tiannetToday() {  
  330.  tiannetYear = tiannetDateNow.getFullYear();  
  331.  tiannetMonth = tiannetDateNow.getMonth()+1;  
  332.  tiannetDay = tiannetDateNow.getDate();  
  333.  tiannetSetValue(true);  
  334.  //tiannetSetDay(tiannetYear,tiannetMonth);  
  335.  //selectObject();  
  336. }  
  337. //往前翻月份  
  338. function tiannetPrevMonth() {  
  339.  if(tiannetMonth>1){tiannetMonth--}else{tiannetYear--;tiannetMonth=12;}  
  340.  tiannetSetDay(tiannetYear,tiannetMonth);  
  341.  checkSelect(document.all.selTianMonth,tiannetMonth);  
  342.  tiannetWriteHead();  
  343. }  
  344. //往后翻月份  
  345. function tiannetNextMonth() {  
  346.  if(tiannetMonth==12){tiannetYear++;tiannetMonth=1}else{tiannetMonth++}  
  347.  tiannetSetDay(tiannetYear,tiannetMonth);  
  348.  checkSelect(document.all.selTianMonth,tiannetMonth);  
  349.  tiannetWriteHead();  
  350. }  
  351. //向span标签中写入年、月、时、分等数据  
  352. function tiannetWriteHead(){  
  353.  document.all.tiannetYearHead.innerText = tiannetYear + "年";  
  354.  document.all.tiannetMonthHead.innerText = tiannetMonth + "月";  
  355.  if( m_bolShowHour )  document.all.tiannetHourHead.innerText = " "+tiannetHour + "时";  
  356.  if( m_bolShowMinute ) document.all.tiannetMinuteHead.innerText = tiannetMinute + "分";  
  357.  tiannetSetValue(false);//给文本框赋值,但不隐藏本控件  
  358. }  
  359. //设置显示天  
  360. function tiannetSetDay(yy,mm) {  
  361.    
  362.  setRealDayCount();//设置当月真实的日  
  363.  tiannetWriteHead();  
  364.  var strDateFont1 = "", strDateFont2 = "" //处理日期显示的风格  
  365.  for (var i = 0; i < 37; i++){tiannetArrDay[i]=""};  //将显示框的内容全部清空  
  366.  var day1 = 1;  
  367.  var firstday = new Date(yy,mm-1,1).getDay();  //某月第一天的星期几  
  368.  for (var i = firstday; day1 < getMonthCount(yy,mm)+1; i++){  
  369.   tiannetArrDay[i]=day1;day1++;  
  370.  }  
  371.  //如果用于显示日的最后一行的第一个单元格的值为空,则隐藏整行。  
  372.  //if(tiannetArrDay[35] == ""){  
  373.  // document.all.trTiannetDay5.style.display = "none";  
  374.  //} else {  
  375.  // document.all.trTiannetDay5.style.display = "";  
  376.  //}  
  377.  for (var i = 0; i < 37; i++){  
  378.   var da = eval("document.all.tdTiannetDay"+i)     //书写新的一个月的日期星期排列  
  379.   if (tiannetArrDay[i]!="") {  
  380.    //判断是否为周末,如果是周末,则改为红色字体  
  381.    if(i % 7 == 0 || (i+1) % 7 == 0){  
  382.    strDateFont1 = "<font color=#f0000>"  
  383.    strDateFont2 = "</font>"  
  384.    } else {  
  385.     strDateFont1 = "";  
  386.     strDateFont2 = ""  
  387.    }  
  388.    da.innerHTML = strDateFont1 + tiannetArrDay[i] + strDateFont2;  
  389.    //如果是当前选择的天,则改变颜色  
  390.    if(tiannetArrDay[i] == tiannetDay ) {  
  391.     da.style.backgroundColor = "#CCCCCC";  
  392.    } else {  
  393.     da.style.backgroundColor = "#EFEFEF";  
  394.    }  
  395.    da.style.cursor="hand"  
  396.   } 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值