天天看点

综合练习:双排月历

将两个月历并排打印

如果你可以独立完成,那说明你对编程已经有了一定的控制能力了

1

综合练习:双排月历

public static void Main(string[] args)

2

综合练习:双排月历

 {

3

综合练习:双排月历

4

综合练习:双排月历

5

综合练习:双排月历

 System.DateTime dt1 = new System.DateTime(2004, 1, 1);

6

综合练习:双排月历

 System.DateTime dt2 = new System.DateTime(2004, 2, 1);

7

综合练习:双排月历

 System.DateTime tmpdt;

8

综合练习:双排月历

 int tmpMonth1;//记录当前要操作的单月

9

综合练习:双排月历

 int tmpMonth2;//记录当前要操作的偶月

10

综合练习:双排月历

 int change = 0;//0为单月,1为偶月

11

综合练习:双排月历

 char[] weekChar = "日一二三四五六".ToCharArray();

12

综合练习:双排月历

13

综合练习:双排月历

 //输出标题,每个标题之间空2个间隔,每个月之间空4个间隔

14

综合练习:双排月历

 for (int j = 0; j <= 1; j++)

15

综合练习:双排月历

16

综合练习:双排月历

 for (int i = 0; i <= weekChar.Length - 1; i++)

17

综合练习:双排月历

18

综合练习:双排月历

 System.Console.Write("{0} ", weekChar[i]);

19

综合练习:双排月历

 }

20

综合练习:双排月历

 System.Console.Write(" ");

21

综合练习:双排月历

22

综合练习:双排月历

 System.Console.WriteLine();

23

综合练习:双排月历

 tmpMonth1 = dt1.Month; tmpMonth2 = dt2.Month;

24

综合练习:双排月历

 tmpdt = dt1;//将要打印的月交给打印控制

25

综合练习:双排月历

26

综合练习:双排月历

 do//控制月

27

综合练习:双排月历

28

综合练习:双排月历

 //定位每月的第一个打印位置(跳出需要打印月的不要打印)

29

综合练习:双排月历

 if (tmpdt.Day == 1)

30

综合练习:双排月历

 {//如果是当前控制月的第一天,先需要打印定位

31

综合练习:双排月历

 if (tmpMonth1 == dt1.Month && tmpMonth2 == dt2.Month)

32

综合练习:双排月历

33

综合练习:双排月历

 for (int i = 0; i <= (int)tmpdt.DayOfWeek - 1; i++)

34

综合练习:双排月历

35

综合练习:双排月历

 System.Console.Write("{0}{1}", " ", " ");

36

综合练习:双排月历

37

综合练习:双排月历

38

综合练习:双排月历

 else//不是本月就不要打了

39

综合练习:双排月历

40

综合练习:双排月历

 System.Console.Write("");

41

综合练习:双排月历

42

综合练习:双排月历

43

综合练习:双排月历

44

综合练习:双排月历

 //打印每一天

45

综合练习:双排月历

 if (tmpdt.Day < 10)//如果日期<10,在前面多打一个空格

46

综合练习:双排月历

 {//正常情况正常打印

47

综合练习:双排月历

48

综合练习:双排月历

49

综合练习:双排月历

 System.Console.Write(" {0} ", tmpdt.Day);

50

综合练习:双排月历

51

综合练习:双排月历

 else

52

综合练习:双排月历

 {//否则不打印日期,只打印一个占位间隔

53

综合练习:双排月历

 if (change == 0 && tmpMonth1 != dt1.Month)

54

综合练习:双排月历

55

综合练习:双排月历

 System.Console.Write(" {0} ", " ");

56

综合练习:双排月历

57

综合练习:双排月历

 if (change == 1 && tmpMonth2 != dt2.Month)

58

综合练习:双排月历

59

综合练习:双排月历

60

综合练习:双排月历

61

综合练习:双排月历

62

综合练习:双排月历

63

综合练习:双排月历

64

综合练习:双排月历

65

综合练习:双排月历

 System.Console.Write("{0} ", tmpdt.Day);

66

综合练习:双排月历

67

综合练习:双排月历

68

综合练习:双排月历

 //处理周六的情况

69

综合练习:双排月历

 if (tmpdt.DayOfWeek == System.DayOfWeek.Saturday)

70

综合练习:双排月历

 {//打印周六后是打印月间隔(单月)还是换行(偶月),同时收回打印控制

71

综合练习:双排月历

72

综合练习:双排月历

 if (change == 0)

73

综合练习:双排月历

 {//单月

74

综合练习:双排月历

 dt1 = tmpdt.AddDays(1);

75

综合练习:双排月历

 System.Console.Write(" ");//月间隔

76

综合练习:双排月历

 tmpdt = dt2;//交换控制

77

综合练习:双排月历

78

综合练习:双排月历

79

综合练习:双排月历

 {//双月

80

综合练习:双排月历

 dt2 = tmpdt.AddDays(1);

81

综合练习:双排月历

 System.Console.WriteLine("");//换行

82

综合练习:双排月历

 tmpdt = dt1;//交换控制

83

综合练习:双排月历

84

综合练习:双排月历

 change = 1 - change;//切换标志

85

综合练习:双排月历

86

综合练习:双排月历

 else//仅仅转到下一天

87

综合练习:双排月历

88

综合练习:双排月历

 tmpdt = tmpdt.AddDays(1);

89

综合练习:双排月历

90

综合练习:双排月历

 { dt1 = tmpdt; }

91

综合练习:双排月历

92

综合练习:双排月历

 { dt2 = tmpdt; }

93

综合练习:双排月历

94

综合练习:双排月历

95

综合练习:双排月历

 //交换单偶月

96

综合练习:双排月历

97

综合练习:双排月历

98

综合练习:双排月历

 while (tmpMonth1 == dt1.Month || tmpMonth2 == dt2.Month);//单月和偶月都结束

99

综合练习:双排月历

100

综合练习:双排月历

101

综合练习:双排月历

102

综合练习:双排月历

103

综合练习:双排月历

104

综合练习:双排月历

105

综合练习:双排月历

106

综合练习:双排月历

107

综合练习:双排月历

108

综合练习:双排月历

109

综合练习:双排月历

110

综合练习:双排月历

111

综合练习:双排月历

本文转自shyleoking 51CTO博客,原文链接:http://blog.51cto.com/shyleoking/806890

继续阅读