質問編集履歴
1
追記部分
test
CHANGED
File without changes
|
test
CHANGED
@@ -613,3 +613,173 @@
|
|
613
613
|
|
614
614
|
|
615
615
|
このように表示したりしたいのですが、アドバイス頂けると幸いです。
|
616
|
+
|
617
|
+
|
618
|
+
|
619
|
+
|
620
|
+
|
621
|
+
|
622
|
+
|
623
|
+
-----追記-------
|
624
|
+
|
625
|
+
|
626
|
+
|
627
|
+
```c
|
628
|
+
|
629
|
+
//カレンダーを表示する
|
630
|
+
|
631
|
+
void calendarprint(char calendar[N_MONTH][ROW_SIZE][N_WEEK], int year, int display) {
|
632
|
+
|
633
|
+
|
634
|
+
|
635
|
+
int month; //月のループ
|
636
|
+
|
637
|
+
int row; //週のループ
|
638
|
+
|
639
|
+
int col;//曜日のループ
|
640
|
+
|
641
|
+
|
642
|
+
|
643
|
+
|
644
|
+
|
645
|
+
printf("%5d年\n", year); // 入力された年を表示
|
646
|
+
|
647
|
+
|
648
|
+
|
649
|
+
for (month = JAN; month <= DEC; month+=display) {
|
650
|
+
|
651
|
+
for (int m = month, dis = 0; m < N_MONTH && dis < display; m++, dis++) {
|
652
|
+
|
653
|
+
|
654
|
+
|
655
|
+
printf(" %2d月 ", m + 1);
|
656
|
+
|
657
|
+
}
|
658
|
+
|
659
|
+
printf("\n\n");
|
660
|
+
|
661
|
+
for (int m = month, dis = 0; m < N_MONTH && dis < display; m++, dis++) {
|
662
|
+
|
663
|
+
for (int i = 0; i <= SAT; i++) {
|
664
|
+
|
665
|
+
|
666
|
+
|
667
|
+
printf(" %2s ", weeks[i]); //曜日の表示
|
668
|
+
|
669
|
+
if (i == SAT) {
|
670
|
+
|
671
|
+
printf(" ");
|
672
|
+
|
673
|
+
}
|
674
|
+
|
675
|
+
}
|
676
|
+
|
677
|
+
}
|
678
|
+
|
679
|
+
printf("\n");
|
680
|
+
|
681
|
+
|
682
|
+
|
683
|
+
for (row = 0; row < ROW_SIZE; row++) {
|
684
|
+
|
685
|
+
printf("\n");
|
686
|
+
|
687
|
+
for(int m = month, dis = 0; m < N_MONTH && dis < display; m++, dis++){
|
688
|
+
|
689
|
+
|
690
|
+
|
691
|
+
for (col = 0; col <= SAT; col++) {
|
692
|
+
|
693
|
+
|
694
|
+
|
695
|
+
if (calendar[month][row][col] != 0) //日数が0でなければ
|
696
|
+
|
697
|
+
{
|
698
|
+
|
699
|
+
|
700
|
+
|
701
|
+
if (calendar[month][row][col] & HOLI_MARK) {
|
702
|
+
|
703
|
+
printf("*");
|
704
|
+
|
705
|
+
}
|
706
|
+
|
707
|
+
else if (calendar[month][row][col] & TRANS_MARK) {
|
708
|
+
|
709
|
+
printf("+");
|
710
|
+
|
711
|
+
}
|
712
|
+
|
713
|
+
else if (calendar[month][row][col] & BIRTH_MARK) {
|
714
|
+
|
715
|
+
printf("&");
|
716
|
+
|
717
|
+
}
|
718
|
+
|
719
|
+
else {
|
720
|
+
|
721
|
+
|
722
|
+
|
723
|
+
printf(" ");
|
724
|
+
|
725
|
+
}
|
726
|
+
|
727
|
+
printf("%2d ", calendar[month][row][col] & 0x1F);
|
728
|
+
|
729
|
+
}
|
730
|
+
|
731
|
+
else { //日数が0なら
|
732
|
+
|
733
|
+
printf(" ");
|
734
|
+
|
735
|
+
}
|
736
|
+
|
737
|
+
if (col == SAT) {
|
738
|
+
|
739
|
+
|
740
|
+
|
741
|
+
printf(" ");
|
742
|
+
|
743
|
+
}
|
744
|
+
|
745
|
+
}
|
746
|
+
|
747
|
+
}
|
748
|
+
|
749
|
+
printf("\n");
|
750
|
+
|
751
|
+
}
|
752
|
+
|
753
|
+
printf("\n");
|
754
|
+
|
755
|
+
}
|
756
|
+
|
757
|
+
}
|
758
|
+
|
759
|
+
|
760
|
+
|
761
|
+
```
|
762
|
+
|
763
|
+
|
764
|
+
|
765
|
+
カレンダーを表示の部分を回答を参考に自分なりに書いてみました。
|
766
|
+
|
767
|
+
|
768
|
+
|
769
|
+
しかし、表示の仕方を
|
770
|
+
|
771
|
+
|
772
|
+
|
773
|
+
1 2 7 8
|
774
|
+
|
775
|
+
3 4 9 10
|
776
|
+
|
777
|
+
5 6 11 12
|
778
|
+
|
779
|
+
|
780
|
+
|
781
|
+
上記ののように表示をしたいのですが、なかなかうまくいきません。
|
782
|
+
|
783
|
+
|
784
|
+
|
785
|
+
追加でアドバイス頂けると幸いです。
|