簡體   English   中英

如何在 c++ 中將星期幾從周日轉換為周一?

[英]How to convert day of week from Sunday first to Monday first in c++?

我有一個 function,它將星期幾返回為 integer,星期日 = 0,星期一 = 1 等到 6。我想將其轉換為星期一 = 0,...,星期日 = 6。我想不出比下面列出的方法更好,但它很笨拙。 有沒有更好的辦法?

if (!currTime.dayOfTheWeek()) { // if time.dow == 0
    dayOfWeek = 6;
}
  else {
    dayOfWeek = currTime.dayOfTheWeek() - 1;
}

順便說一句,這是 Arduino 代碼,使用 RTCLib 作為時間。

選擇:

至 map 0...6 來自 [周日。 到星期六]到[星期一。 太陽。]

dayOfWeek_fromMonday = (dayOfWeek_fromSunday + 6)%7;

假設您想從星期三開始(比從 1 開始更有趣的事情)而不是星期日,並避免使用裸幻數。

#define DaysWedToSun 4
#define DaysPerWeek 7 
dayOfWeek_fromWed = (dayOfWeek_fromSun + DaysWedToSun)%DaysPerWeek;

把事情簡單化。 規則是什么? 如果這一天是星期天(0),我們將其更改為 6,所有其他的我們減去 1。

int dayOfWeek = ..;
dayOfWeek = dayOfWeek == 0 ? 6 : dayOfWeek - 1;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM