計算世紀秒的演算法 基於1970 1 1

2021-09-30 09:47:16 字數 991 閱讀 4306

/*為時間定義*/

#define february 2

#define startoftime 1970

#define secday  86400l

#define secyr  (secday * 365)

static int month_days[12] = ;

#define leapyear(year)  ((year) % 4 == 0 && \

((year) % 100 != 0 || (year) % 400 == 0))

#define days_in_year(a)  (leapyear(a) ? 366 : 365)

#define days_in_month(a)  (month_days[(a) - 1])

/*日期資料結構*/

typedef struct  

date_time;

/*計算soc*/

void tm_time_to_soc( date_time* pdttmrslt, uint32 *pu32soc)

if (leapyear(pdttmrslt->unyear))

days_in_month(february) = 29;

for (i = 1; iucmonth; i++)

ulrslt += days_in_month(i);

days_in_month(february) = 28;

ulrslt += pdttmrslt->ucdate- 1;

ulrslt = ulrslt * secday;

ulrslt += pdttmrslt->uchour*3600+pdttmrslt->ucminute*60+pdttmrslt->ucsec;

*pu32soc = ulrslt;

return ;

}改進點:

該方法通過將年每次相加,可以提供統一陣列來提供,這樣只需要一次訪問就可以,大大提高訪問效率,減少記憶體訪問次數。

基於matlab的隨機取樣計算法

對於線性規劃而言,有著成熟且有效的方法,而對於非線性整數規劃而言,沒有通解,儘管限制變數為整數而增加了難度,然而整數解為有限個,於是可以用列舉法求解方案。當然在乙個自變數維度很大和取值範圍很寬的情況下,企圖用窮舉法計算最優值是不現實的,但是根據概率理論可知,完全可以得出乙份滿意解。下面是matlab...

納秒與微秒的計算

秒的換算 ms 毫秒 s 微秒 ns 納秒 ps 皮秒 皮秒皮秒,符號ps 英語 picosecond 1皮秒等於一萬億分之一秒 10 12秒 1,000 皮秒 1納秒 1,000,000 皮秒 1微秒 1,000,000,000 皮秒 1毫秒 1,000,000,000,000 皮秒 1秒 納秒納...

基於Siddon演算法的CT正投影計算

ct技術在醫學診斷 工業無損檢測 安檢及地質勘測等方面發揮著重要的作用。ct技術的數理基礎是radon變換,在實際的ct系統中,radon正變換稱為投影資料的採集,radon逆變換稱為切片影象重建。ct投影 在優化radon變換的投影成像過程,測試radon逆變換的ct重建演算法等方面具有十分重要的...