私はISO8601の週番号をCで取得しようとしています。私のPCにMinGWがインストールされています。 GCCのバージョンは5.3.0です。下のコードを見ることができます。 strftimeは、指定子 "%V"では機能しません。しかし、指定子 "%W"でうまく動作します。しかし、それは私が望むものではありません。私はISO 8601形式で年の週番号が必要です。CのISO 8601週番号
私は2つの異なるオンラインCコンパイラで自分のコードを試してみましたが、どちらもうまくいきました。私のPC上のコンパイラがうまく構成されていないのではないかと思う。誰かが私に間違っていることを教えてもらえますか?どんな助けもありがとう。
#include <stdio.h>
#include <time.h>
#include <string.h>
int main()
{
time_t timep;
struct tm * time_inf;
char buff [80];
time (&timep);
time_inf = localtime (&timep);
time_inf->tm_year = 2008 - 1900;
time_inf->tm_mon = 11;
time_inf->tm_mday = 31;
mktime (time_inf);
strftime (buff, sizeof(buff), "%V", time_inf) ;
puts (buff); //prints nothing
printf("%d", strlen(buff)); //prints 0
return 0;
}
あなたのコードは私のためにうまく動作します - [click](http://coliru.stacked-crooked.com/a/af8765f61e764251)。 '%V'フォーマット指定子はロケール依存であることに注意してください。コードは上手く見えるので、これを掘り下げてみてください* C以外のC++ *。 – mpiatek