/**
* 將 long 型別資料轉成二進位制的字串
*/private
static string tofullbinarystring(long num)
return
new string(chs);
}
簽到歷史:
「簽到歷史」要實現的效果:
* 簽到歷史為整數。將整數轉化為2進製數,1表示簽到,0表示未簽到
* 例如:
* 簽到歷史為3(11)時,則表示使用者從第一次簽到導現在為止連續簽到兩天。
* 簽到歷史為5(101)時,則表示第二天未簽到
* 簽到歷史為25(11001)時,則表示第二天和第三天未簽到
public
class
signinhistorytool
//(比如:0000 0011 2天)
/* * 若「moveamonut = 1」:屬於正常的隔天簽到
* 若「moveamonut = 2」:屬於隔1天簽到
*/long moveresult = oldhistory << moveamount;
/** 將本次簽到放到最後一位
*/moveresult +=1;
/** 將 long 型別資料轉成二進位制的字串
* 引數一:將 long 型別資料轉成二進位制的字串
* 引數二:該字串的進製(是2進製,還是8進製之類)
*/return integer.parseint(tofullbinarystring(moveresult), 2);
}/**
* 將 long 型別資料轉成二進位制的字串
*/private
static string tofullbinarystring(long num)
translate(chs);
return
new string(chs);
}/**
* 將得到的二進位制陣列倒置
* 例:
* 第1天、第2天簽到:0000 0011
* 第3/4天未簽到,第五天簽到,則先左移2位,再末位加1:0001 1001
* 將得到的二進位制陣列倒置:00010011(即變成第1、2天簽到,第3、4天未簽到)
*@param chs 二進位制陣列
*/private
static
void
translate(char chs)
}if (reverseindex != 0)
}private
static
void
swap(char chs, int startindex, int endindex)
if (startindex < 0)
if (startindex >= endindex)
int middleindex = (endindex - startindex) / 2;
if ((endindex - startindex) % 2 == 1)
for (int i = 0; i < middleindex; i++)
}/**
* 計算距離上一次簽到,相隔天數
*@return
*@throws parseexception
*/public
static
intcountsigndays(date nowdate,date lastmodifydate) throws parseexception
return days;
}/**
* 若當前簽到時間過了前一天的24點,也算隔1天
*@param nowdate 當前簽到時間
*@param lastmodifydate 上次簽到時間
*@return 若當前簽到時間過了前一天(也就是上次簽到)的24點,也算隔1天,可以簽到;否則不可以簽到
*/private
static
intcompare(date nowdate, date lastmodifydate)
}
機器學習中常用的python小知識(一)
在機器學習中python現在已經成為主流語言,但是想要快速去實現演算法還需要磨磨刀。python工具磨刀石。主要用的庫有numpy pandas matplotlib以及我推薦的乙個畫統計圖的庫seaborn。下面我以我用到的順序,具體說明一下這些小工具的用法。讀取檔案 file open data...
一些windows中常用的小知識
c windows system32 config sam存放使用者密碼 sam檔案啟動項目錄 ssh scp 22 tcpwin r services.msc 開啟服務 win r regedit 開啟登錄檔 win r msconfig 開啟系統配置 f2 選中檔案重新命名 f3 查詢 alt ...
java中常用到的一些小知識
轉化時間格式 string轉date string str 2007 1 18 11 12 13 dateformat dateformat new dateformat yyyy mm dd hh mm ss try catch parseexception e date格式自定義date ada...