Java星期的複選運算

2021-07-08 17:53:31 字數 1994 閱讀 8149

用乙個位元組就可以記錄選中狀態,其中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轉...