C# .NET6 macOS 時間の「分・秒」以降を0にする

C# DateTime Ticks計算

Windows 時代からPCを使っているひとは 流行りのスクリプト言語よりC#で書いたほうが楽もしくは安心だと思います。わたしもmacOSを使うようになって簡単なプログラムならPythonNode.jsで書いていましたが.NET6が安定して動くので最近はC#言語macOSで使うようになりました。

C#のDateTime型で「分・秒・㍉秒」などを0にしたい場合、方法はいろいろあると思いますがわたしの場合下記2つの方法を使っています。

新しくDateTimeを作る

DateTimeのコンストラクタの中に「DateTime(int year, int month, int day, int hour, int minute, int second)」があるのでそれを使います。下のコード例では年月日時以降は0に設定しています。

var d1 = DateTime.Now;
d1 = new DateTime(d1.Year, d1.Month, d1.Day, d1.Hour, 0,0);
Console.WriteLine(d1);

DateTimeのTicksで計算

TimeSpanで、1時間出してその後 Ticksを 剰余演算(%) します。

その後、AddTicksしています。

var ts1 = TimeSpan.FromHours(1);
var d1 = DateTime.Now;
var tt1 = d1.Ticks % ts1.Ticks;
d1 = d1.AddTicks(- tt1);
Console.WriteLine(d1);

Ticksが 637 791 516 000 000 000 計算されました。

内部では GetTickCount64() が使われているのかな?よくわからない

macOS Node.js nodebrewを使ったバージョンアップ

nodebrew install-binary

macOSで複数バージョンのNode.jsを使いたい場合「nodebrew」で管理すると簡単にNode.jsのバージョンを切り替えることが可能です。

brewのバージョンを確認しておく

brew -v

Homebrew 3.3.11」と返ってきたおそらく最新に近いバージョンだと思う

brew内でnode.jsのバージョンを管理できる「nodebrew」と云うパッケージがあるのでインストールする

brew install nodebrew

nodebrewがインストールされている場合は、そのnodebrewが古そうであればupgradeする

brew upgrade nodebrew

使いたいnode.jsのバージョンを確認

nodebrew ls-remote

ls-remoteで利用したいnode.jsのバージョンを確認する

nodebrew ls-remote 実行すると利用できるnodeバージョン一覧が表示される

v16.13.2があったのでそれをローカルmacOSに入れて使うことにする。

node.jsのバイナリをダウンロード

nodebrew install-binary v16.13.2

コマンドラインで「nodebrew install-binary バージョン」エンターするとnodebrewで指定したバージョンがインストールされる。

nodebrew list
先程install-binaryを実行した v16.13.2が入っている

この時点ではv16.13.2はダウンロードできたが利用できていない利用するには「nodebrew use」を実行する

nodebrew use v16.13.2

「nodebrew ls」を実行すると「current: v16.13.2」と表示されていればOK

2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED