将两个月历并排打印
如果你可以独立完成,那说明你对编程已经有了一定的控制能力了
如果你可以独立完成,那说明你对编程已经有了一定的控制能力了
1
publicstaticvoidMain(string[]args)
2

{
3
4
5
System.DateTimedt1=newSystem.DateTime(2004,1,1);
6
System.DateTimedt2=newSystem.DateTime(2004,2,1);
7
System.DateTimetmpdt;
8
inttmpMonth1;//记录当前要操作的单月
9
inttmpMonth2;//记录当前要操作的偶月
10
intchange=0;//0为单月,1为偶月
11
char[]weekChar="日一二三四五六".ToCharArray();
12
13
//输出标题,每个标题之间空2个间隔,每个月之间空4个间隔
14
for(intj=0;j<=1;j++)
15

{
16
for(inti=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(inti=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
if(tmpMonth1==dt1.Month&&tmpMonth2==dt2.Month)
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
System.Console.Write("{0}","");
60
}
61
}
62
}
63
else
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
else
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
if(change==0)
90

{dt1=tmpdt;}
91
else
92

{dt2=tmpdt;}
93
}
94
95
//交换单偶月
96
97
}
98
while(tmpMonth1==dt1.Month||tmpMonth2==dt2.Month);//单月和偶月都结束
99
100
System.Console.WriteLine();
101
102
103
104
105
106
107
108
109
110
111
}
publicstaticvoidMain(string[]args)2


{3

4

5
System.DateTimedt1=newSystem.DateTime(2004,1,1);6
System.DateTimedt2=newSystem.DateTime(2004,2,1);7
System.DateTimetmpdt;8
inttmpMonth1;//记录当前要操作的单月9
inttmpMonth2;//记录当前要操作的偶月10
intchange=0;//0为单月,1为偶月11
char[]weekChar="日一二三四五六".ToCharArray();12

13
//输出标题,每个标题之间空2个间隔,每个月之间空4个间隔14
for(intj=0;j<=1;j++)15


{16
for(inti=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(inti=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
if(tmpMonth1==dt1.Month&&tmpMonth2==dt2.Month)48


{49
System.Console.Write("{0}",tmpdt.Day);50
}51
else52


{//否则不打印日期,只打印一个占位间隔53
if(change==0&&tmpMonth1!=dt1.Month)54


{55
System.Console.Write("{0}","");56
}57
if(change==1&&tmpMonth2!=dt2.Month)58


{59
System.Console.Write("{0}","");60
}61
}62
}63
else64


{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
else79


{//双月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
if(change==0)90


{dt1=tmpdt;}91
else92


{dt2=tmpdt;}93
}94

95
//交换单偶月96

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

100
System.Console.WriteLine();101

102

103

104

105

106

107

108

109

110

111
}
本文介绍了一个使用C#实现的程序,该程序能够并排打印两个月的日历视图。通过控制台输出,程序展示了如何处理两个不同月份的日期,并确保它们正确地对齐在同一行中。
198

被折叠的 条评论
为什么被折叠?



