用乙個位元組就可以記錄選中狀態,其中1表示選中,0表示未選中,位置代表星期的位置。
/**
* days of week code as a single int.
* 0x00: no day
* 0x01: monday
* 0x02: tuesday
* 0x04: wednesday
* 0x08: thursday
* 0x10: friday
* 0x20: saturday
* 0x40: sunday
*/public final class daysofweek ;
// bitmask of all repeating days
private int mdays;
daysofweek(int days)
public string tostring(boolean shownever)
// every day
if (mdays == 0x7f)
// count selected days
int daycount = 0, days = mdays;
while (days > 0)
// short or long form?
dateformatsymbols dfs = new dateformatsymbols();
string daylist = (daycount > 1) ?
dfs.getshortweekdays() :
dfs.getweekdays();
// selected days
for (int i = 0; i < 7; i++)
}return ret.tostring();
}// 判斷第幾位是否被選中
private boolean isset(int day)
public void set(int day, boolean set) else
}public void set(daysofweek dow)
public int getcoded()
// returns days of week encoded in an array of booleans.
public boolean getbooleanarray()
return ret;
}public boolean isrepeatset()
/*** returns number of days from today until next alarm
* @param c must be set to today
*/public int getnextalarm(calendar c)
int today = (c.get(calendar.day_of_week) + 5) % 7;
int day = 0;
int daycount = 0;
for (; daycount < 7; daycount++)
}return daycount;}}
daysofweek daysofweek = new daysofweek(0x00); // 初始化乙個選中狀態
daysofweek.set(0, true); // 設定星期一選中
daysofweek.set(1, true); // 設定星期二選中
daysofweek.set(0, false); // 取消星期一的選中
// 獲取選中的星期,第0位代表星期一
boolean weekbool = daysofweek.getbooleanarray();
Objective C使用位運算設計可複選的列舉
在軟體開發中,列舉是我們會經常會用到的一種程式設計方式,通過列舉,可以使我們的 更具可讀性與統一性。通常情況下,我們會通過typedef來定義一種列舉的型別來使用。例如 12 3 4 5 typedefenummyenum 我們可以在函式的引數中來使用它 12 3 4 5 6 7 8 9 10 11...
Java的位運算
見識乙個應用 int long long 32 將long的高位儲存程式設計int 移位運算子 包括 右移 左移 無符號右移 例子 5 3 1 1111 1111 1111 1111 1111 1111 1111 1011 1111 1111 1111 1111 1111 1111 1111 111...
java中的運算 , , ,
前兩天看 的時候看到了運算 因為之前很少用到所以一時間不知道怎麼運算了 看了下資料,總結一下 1.首先先說說 異或運算 先看 public static void main string args 那麼這個1是怎麼來的,我們要知道 等位運算子主要針對二進位制,算異或的時候相同的為0,不同的為1 2轉...