teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

10

結果画像を入れました

2015/12/09 09:10

投稿

hsk
hsk

スコア728

answer CHANGED
@@ -1,5 +1,8 @@
1
1
  こんにちは。
2
2
 
3
+ ご参考までに、このような感じでOKでしょうか?
4
+ ![イメージ説明](cba2085d4430f3c25f9c82439a8da5a2.png)
5
+
3
6
  私であれば、<td> 要素に祝日用のクラスを付与します。②に近いですね。次のコードのようにします。
4
7
 
5
8
  ① の意味合い(1日ずつAPIを呼ぶ?ちがっていたらすみません)では、その分、負荷がかかったりレスポンスが遅くなったりするので、祝日情報はまとめて取得しておきます。祝日は動的ではないですし、祝日日数は年間の日数に対して少ないですから。

9

修正しました

2015/12/09 09:10

投稿

hsk
hsk

スコア728

answer CHANGED
@@ -26,7 +26,10 @@
26
26
  // 該当する #YYYYMMDD# を ymd に得ます。
27
27
  ymd = "#" + year + month + String(100 + i).substr(1, 2) + "#";
28
28
  // 祝日情報文字列中に、該当する#YYYYMMDD# があるかどうかで、td要素に対するクラス指定を行います。
29
+
29
- attr = dayoffs.indexof(ymd)?" daysoff":"";
30
+ // ※間違いでした... attr = dayoffs.indexof(ymd)?" daysoff":"";
31
+ attr = (-1 < dayoffs.indexOf(ymd)) ? ' class="daysoff"' : "";
32
+
30
33
  // htmlを生成します。
31
34
  html += "<td" + attr + ">" + i + "</td>";
32
35
 

8

補足

2015/12/09 08:38

投稿

hsk
hsk

スコア728

answer CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  私であれば、<td> 要素に祝日用のクラスを付与します。②に近いですね。次のコードのようにします。
4
4
 
5
- ① の意味合い(1日ずつAPIを呼ぶ?ちがっていたらすみません)では、その分、負荷がかかったりレスポンスが遅くなったりするので、祝日情報はまとめて取得しておきます。祝日は動的ではないですし、日数は年の日数に対して少ないですから。
5
+ ① の意味合い(1日ずつAPIを呼ぶ?ちがっていたらすみません)では、その分、負荷がかかったりレスポンスが遅くなったりするので、祝日情報はまとめて取得しておきます。祝日は動的ではないですし、数は年の日数に対して少ないですから。
6
6
 
7
7
  それから、振替休日などはクライアント側で逐一計算せずに、APIから振替日そのものを祝日(の仲間)として返してもらえれば、それに越したことはありません(変数名やクラス名を holydays ではなく daysoff としたのは、そのような意味合いもあります)
8
8
 

7

補足

2015/12/09 06:12

投稿

hsk
hsk

スコア728

answer CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  ① の意味合い(1日ずつAPIを呼ぶ?ちがっていたらすみません)では、その分、負荷がかかったりレスポンスが遅くなったりするので、祝日情報はまとめて取得しておきます。祝日は動的ではないですし、日数は年の日数に対して少ないですから。
6
6
 
7
+ それから、振替休日などはクライアント側で逐一計算せずに、APIから振替日そのものを祝日(の仲間)として返してもらえれば、それに越したことはありません(変数名やクラス名を holydays ではなく daysoff としたのは、そのような意味合いもあります)
8
+
7
9
  ```css
8
10
  td.daysoff {color: red;}
9
11
  ```

6

補足

2015/12/09 06:11

投稿

hsk
hsk

スコア728

answer CHANGED
@@ -1,7 +1,9 @@
1
1
  こんにちは。
2
2
 
3
- 私であれば、<td> 要素に祝日用のクラスを付与します。②に近いですね。次のようにします。
3
+ 私であれば、<td> 要素に祝日用のクラスを付与します。②に近いですね。次のコードのようにします。
4
4
 
5
+ ① の意味合い(1日ずつAPIを呼ぶ?ちがっていたらすみません)では、その分、負荷がかかったりレスポンスが遅くなったりするので、祝日情報はまとめて取得しておきます。祝日は動的ではないですし、日数は年の日数に対して少ないですから。
6
+
5
7
  ```css
6
8
  td.daysoff {color: red;}
7
9
  ```

5

修正

2015/12/09 06:08

投稿

hsk
hsk

スコア728

answer CHANGED
@@ -9,7 +9,7 @@
9
9
  ```javascript
10
10
  ...
11
11
  // 祝日情報
12
- // (これは、データの例です。配列として一気に取り込んでもよいでしょう)
12
+ // (これは、データの例です。配列として一気に取り込む、そのほかAPIに合わせてもよいでしょう)
13
13
  dayoffs = "#20150101#20150112#20150211#20151223#"; // 例:2015年祝日情報(途中省略)
14
14
  ...
15
15
 
@@ -20,10 +20,10 @@
20
20
  html += '</tr></tr>';
21
21
  }
22
22
  // 該当する #YYYYMMDD# を ymd に得ます。
23
- ymd = "#" + year + month + String(100 + i).substr(1, 2);;
23
+ ymd = "#" + year + month + String(100 + i).substr(1, 2) + "#";
24
24
  // 祝日情報文字列中に、該当する#YYYYMMDD# があるかどうかで、td要素に対するクラス指定を行います。
25
25
  attr = dayoffs.indexof(ymd)?" daysoff":"";
26
-
26
+ // htmlを生成します。
27
27
  html += "<td" + attr + ">" + i + "</td>";
28
28
 
29
29
  count++;

4

修正

2015/12/09 06:03

投稿

hsk
hsk

スコア728

answer CHANGED
@@ -20,7 +20,7 @@
20
20
  html += '</tr></tr>';
21
21
  }
22
22
  // 該当する #YYYYMMDD# を ymd に得ます。
23
- ymd = sprintf("#%s%s%02d#", year, month, i);
23
+ ymd = "#" + year + month + String(100 + i).substr(1, 2);;
24
24
  // 祝日情報文字列中に、該当する#YYYYMMDD# があるかどうかで、td要素に対するクラス指定を行います。
25
25
  attr = dayoffs.indexof(ymd)?" daysoff":"";
26
26
 

3

補足

2015/12/09 06:03

投稿

hsk
hsk

スコア728

answer CHANGED
@@ -6,7 +6,7 @@
6
6
  td.daysoff {color: red;}
7
7
  ```
8
8
 
9
- ```js
9
+ ```javascript
10
10
  ...
11
11
  // 祝日情報
12
12
  // (これは、データの例です。配列として一気に取り込んでもよいでしょう)

2

修正

2015/12/09 06:01

投稿

hsk
hsk

スコア728

answer CHANGED
@@ -6,11 +6,11 @@
6
6
  td.daysoff {color: red;}
7
7
  ```
8
8
 
9
- ```php
9
+ ```js
10
10
  ...
11
11
  // 祝日情報
12
12
  // (これは、データの例です。配列として一気に取り込んでもよいでしょう)
13
- $dayoffs = "#20150101#20150112#20150211#20151223#"; // 例:2015年祝日情報(途中省略)
13
+ dayoffs = "#20150101#20150112#20150211#20151223#"; // 例:2015年祝日情報(途中省略)
14
14
  ...
15
15
 
16
16
  // 来月の0日を調べると、今月の末日がわかる
@@ -19,12 +19,12 @@
19
19
  if (count % 7 == 0) {
20
20
  html += '</tr></tr>';
21
21
  }
22
- // 該当する #YYYYMMDD# を $ymd に得ます。
22
+ // 該当する #YYYYMMDD# を ymd に得ます。
23
- $ymd = sprintf("#%s%s%02d#", year, month, i);
23
+ ymd = sprintf("#%s%s%02d#", year, month, i);
24
24
  // 祝日情報文字列中に、該当する#YYYYMMDD# があるかどうかで、td要素に対するクラス指定を行います。
25
- $attr = (strpos($dayoffs, $ymd) !== false)?" daysoff":"";
25
+ attr = dayoffs.indexof(ymd)?" daysoff":"";
26
26
 
27
- html += "<td" + $attr + ">" + i + "</td>";
27
+ html += "<td" + attr + ">" + i + "</td>";
28
28
 
29
29
  count++;
30
30
  }

1

補足

2015/12/09 06:00

投稿

hsk
hsk

スコア728

answer CHANGED
@@ -1,15 +1,16 @@
1
1
  こんにちは。
2
2
 
3
- 私であれば、<TD> に祝日クラスを付与します。②に近いですね。次のようにします。
3
+ 私であれば、<td> 要素に祝日用のクラスを付与します。②に近いですね。次のようにします。
4
4
 
5
5
  ```css
6
- TD.daysoff {color: red;}
6
+ td.daysoff {color: red;}
7
7
  ```
8
8
 
9
9
  ```php
10
10
  ...
11
11
  // 祝日情報
12
+ // (これは、データの例です。配列として一気に取り込んでもよいでしょう)
12
- $dayoffs = "#20150101#20150112#20150211#20151223#"; // 2015年祝日情報途中省略
13
+ $dayoffs = "#20150101#20150112#20150211#20151223#"; // 例:2015年祝日情報途中省略
13
14
  ...
14
15
 
15
16
  // 来月の0日を調べると、今月の末日がわかる
@@ -18,9 +19,13 @@
18
19
  if (count % 7 == 0) {
19
20
  html += '</tr></tr>';
20
21
  }
22
+ // 該当する #YYYYMMDD# を $ymd に得ます。
21
23
  $ymd = sprintf("#%s%s%02d#", year, month, i);
24
+ // 祝日情報文字列中に、該当する#YYYYMMDD# があるかどうかで、td要素に対するクラス指定を行います。
22
25
  $attr = (strpos($dayoffs, $ymd) !== false)?" daysoff":"";
26
+
23
27
  html += "<td" + $attr + ">" + i + "</td>";
28
+
24
29
  count++;
25
30
  }
26
31
  ...