
C言語についてです!
同じ年の、年月日Aと年月日Bを入力して、その間の経過日数を計算したいのですが(A=Bのケースでは経過日数をゼロ)、A>Bの時は経過日数をマイナスにして表したいです。
AとBは同じ年として、西暦2000年以後の年月と仮定してます。
つまり例をあげますと
『2020/4/9 2020/6/15 』とデバック画面(?)で入力したら実行の結果、経過日数は「67」と出し、
『2020/3/1 2020/2/26』と入力したら経過日数は「-3」と出したいのです。
『』の中は自分で選んだ年月日を入力できるようにしたいです。
どなたかこのプログラムをかける方がいらっしゃたら教えてください<(_ _)>
No.1ベストアンサー
- 回答日時:
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char s[19];
char* sep = " /";
long num_data[6];
scanf("%18[^\n]%*[^\n]", s);
getchar();
num_data[0] = strtol(strtok(s, sep), NULL, 10);
for (int i = 1; i < 6; i++) {
num_data[i] = strtol(strtok(NULL, sep), NULL, 10);
}
struct tm tmTime0 = {0};
tmTime0.tm_year = num_data[0] - 1900;
tmTime0.tm_mon = num_data[1] - 1;
tmTime0.tm_mday = num_data[2];
struct tm tmTime1 = {0};
tmTime1.tm_year = num_data[3] - 1900;
tmTime1.tm_mon = num_data[4] - 1;
tmTime1.tm_mday = num_data[5];
time_t t0 = mktime(&tmTime0);
time_t t1 = mktime(&tmTime1);
printf("%d\n", (int)difftime(t1, t0)/60/60/24);
return EXIT_SUCCESS;
}
さっきはちゃんと叱ってくれてありがとうございました。ごめんなさい、そうですよね、せっかく回答してくださったのにまた他で質問するなんて今考えたらすごく失礼なことだなって思いました。自分がやられたらすごく悲しいですね。
前のはちゃんと消しました。
それと、すぐに回答してくださって本当にありがとうございました。あなたのを参考にしつつ自分なりに工夫してもう1回作ってみようと思います!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java Java 年数計算 3 2023/01/28 10:52
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- 会計ソフト・業務用ソフト 固定資産管理で貸し出したマンションの登録操作について【弥生の青色申告】 2 2023/03/07 11:05
- 労働相談 有給計算について 回答お願いします。 建設業経営です。休日は日曜のみ 従業員の有給計算について 雇い 2 2023/03/26 06:12
- アルバイト・パート アルバイト・パートの有給休暇日数の計算方法を教えてください。 1 2023/01/18 14:41
- Visual Basic(VBA) 過去日付、年の切り替え 6 2022/05/26 12:41
- 労働相談 アルバイト・パートの有給制度について 4 2023/01/07 20:58
- Excel(エクセル) 関数の質問です 3 2022/03/24 12:41
- Excel(エクセル) Excel2019、2021の売り上げなどの集計表について 4 2022/11/29 14:03
- カードローン・キャッシング 信用情報機関CICについて。 独身時代に恥ずかしながら、ショッピング代金の引き落とし延滞が2-3ヶ月 1 2023/07/06 21:44
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
int型(2バイト)データの分割
-
C言語の構造体にてバブルソート...
-
エクセルVBA:日付データの変換...
-
C++/CLIのオブジェクト型配列
-
画像処理のチェーンコード
-
stable diffusionのエラー
-
VisualBasicでレジストリキーの...
-
aliasesファイルを検索したいの...
-
pythonでDBのカラム名で取得し...
-
参照渡しの速度について
-
構造体の初期化の時にポインタ...
-
エクセルVBAで16の16乗を正確に...
-
Perlで取得した情報をFlashへ渡す
-
perlチェックでエラーが出て困...
-
C#でのswitch文
-
音声波形の数値表示用のソフト
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
COBOLのCOMP形式について
-
DataGridViewの特定列に入力さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
stable diffusionのエラー
-
エクセルVBA:日付データの変換...
-
【Excel VBA】10進数を2進数に...
-
int型(2バイト)データの分割
-
Excel VBA グラフ作成のとき...
-
C#でのswitch文
-
'dataType' 引数を Null にする...
-
linuxのシェルでファイル名に先...
-
printfの%eで指数部分の桁数を...
-
ポインター引数の関数でコンパ...
-
CreateProcessでの環境変数の設...
-
C言語でのLinuxとwindows共通の...
-
C言語でPBYTE型からDOUBLE型へ変換
-
pythonでDBのカラム名で取得し...
-
エクセルVBAで16の16乗を正確に...
-
FFTがうまくできない
-
ビットデータのチェック方法
-
参照渡しの速度について
-
POSTで配列のデータを渡す方法は?
-
PINVOKEで構造体配列をマーシャ...
おすすめ情報