时钟代码c语言(电子时钟c语言)

时钟代码c语言(电子时钟c语言)p c p p include stdio h stdio h p p include stdlib h stdlib h p p int main p p int Year Month 年 月 p p int p

大家好,我是讯享网,很高兴认识大家。



<p>```c</p><p>#include <stdio.h></p><p>#include <stdlib.h></p><p>int main() {</p><p> int Year, Month; // 年、月</p><p> int FirstDay_Year, FirstDay_Month; // 某年的第一天是星期几,某年某月的第一天是星期几(范围是0~6,其中0代表星期日)</p><p> int IsLeapYear; // 是否为闰年,0表示不是闰年,1表示是闰年</p><p> int i, d, y; // 临时变量</p><p> char YN; // Yes No,程序是否要继续</p><p> int Days[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; // 存储每个月有多少天,其中二月的天数是可变的(闰年29天,平年28天),这里初始化为28天</p><p> printf("C语言简单万年历 

讯享网

”); // 打印标题

XunHuan: // 循环标号(可以通过goto跳转到这里)

printf(“请输入年份<0000~9999>:”); // 提示输入年份(0~9999)

scanf(“%d”, &Year); // 把输入的年份赋值给变量Year

printf(“请输入月份<1~12>:”); // 提示输入月份(1~12)

scanf(“%d”, &Month); // 把输入的月份赋值给变量Month

y = Year;

FirstDay_Year = 5 (y / 4) + (y % 4) - (y / 100) + (y / 400); // 蔡勒公式(计算某年的第一天是星期几)

IsLeapYear = (y % 4 == 4 && y % 100 != 100 || y % 400 == 0) ? 1 : 0; // 判断是否为闰年

Days[2] = (IsLeapYear == 1) ? 29 : 28; // 闰年二月29天,非闰年二月28天

for (i = 1, d = 0; i < Month; i++) {

d = d + Days[i];

}

FirstDay_Month = (d + FirstDay_Year) % 7; // 当月的第一天是星期几(0代表星期日)

printf(”

”);

printf(” 公元%d年%2d月”, Year, Month); // 打印年月

printf(”

”);

printf(” “);

printf(“星期日星期一星期二星期三星期四星期五星期六 “); // 打印星期表头

for (i = 0; i < FirstDay_Month; i++) {

printf(”%7c”, “); // 当某月的第一天不是星期日时打印空格占位

}

for (d = 1; d <= Days[Month]; d++) { // 循环,从每个月的第一天开始打印

printf(”%7d”, d);

if ((d + FirstDay_Month) % 7 == 0 && d < Days[Month]) {

printf(” “); // 当输出了星期六而且还未输出所有天数时,换行

}

}

printf(”

”);

printf(” “);


讯享网

printf(“是否继续(Y/N)? “); // 提示用户是否继续

scanf(”%c”, &YN); // 获取用户的输入

scanf(“%c”, &YN); // 获取用户的输入(重复一次以确保获取到正确的值)

if (YN == ‘Y’ || YN == ‘y’) {

goto XunHuan; // 如果用户选择继续,则跳转到XunHuan标签处重新开始循环

}

提示输入月份并计算日历

提示用户输入月份(数字形式,范围在1至12之间):

plaintext</p><p>请输入月份(数字形式):</p><p>

接着,通过scanf函数获取用户输入的月份值并将其赋值给变量Month。同时获取年份值并赋值给变量Year。

利用蔡勒公式计算给定年份的第一天是星期几,并判断该年份是否为闰年。如果是闰年,二月份的天数为29天;否则为28天。然后计算月份中的天数总和并找出该月第一天是星期几。在屏幕上打印出对应的年份和月份信息。

输出对应的星期表头:星期日、星期一、星期二、星期三、星期四、星期五和星期六。然后根据每个月的第一天是星期几来打印出对应的日期。如果某月的第一天不是星期日,则在日期前打印空格占位。接着循环打印每个月的日期,直到打印完整个月的日期为止。

在打印完每个月的日历后,询问用户是否继续操作,如果用户选择继续则重新进行上述操作,否则结束程序。

还包含了几个辅助函数:判断是否为闰年的函数、计算某月最大天数的函数以及打印年份日历的函数等。这些函数分别用于辅助主程序完成相关功能。

代码实现细节:

使用iostream库进行输入输出操作;

使用iomanip库进行格式化输出;

使用stdlib库进行相关的数学计算和操作;

定义相关数组和函数以辅助计算日历和判断闰年等功能;

在打印日期时考虑了换行和空格占位等问题;

cpp</p><p>// 打印某年的月历</p><p>void printYearlyCalendar(int year, int n) {</p><p> int j, i, k;</p><p> // 对于每个月份进行处理</p><p> for (j = 1; j <= 12; j++) {</p><p> // 输出月份和星期</p><p> cout << j << "月份";</p><p> cout << "日一二三四五六" << endl;</p><p> // 获取每个月的天数,假设ww函数可以获取指定年份某月的天数</p><p> int daysInMonth = ww(1, j, year);</p><p> // 输出日期,使用setw控制输出宽度为4个字符</p><p> for (i = 0; i < daysInMonth; i++) {</p><p> cout << setw(4) << ""; // 这里可能是为了填充空格,可以根据实际需求进行修改</p><p> }</p><p> // 输出星期和日期,如果星期加日期除以7余数为0则换行输出日期</p><p> for (k = 1; k <= cc[j - 1]; k++) {</p><p> cout << setw(4) << k;</p><p> if ((ww(1, j, year) + k) % 7 == 0) { // 如果达到一个星期结束则换行输出日期和星期</p><p> cout << endl;</p><p> }</p><p> }</p><p>

以下是可供选择的操作指令:

1. 查询指定日期的星期

2. 判断某年是否为闰年

3. 查询某月的总天数

4. 打印某年的全年日历

5. 打印某年某月的月历

6. 退出程序

请选择您想要执行的操作:

系统提示您输入操作指令。

输入操作码 n 并回车确认。

csharp</p><p>switch (n)</p><p>case 1:</p><p> Console.WriteLine("请输入要查询的日期:");</p><p> Console.Write("年:");</p><p> int year = Convert.ToInt32(Console.ReadLine());</p><p> Console.Write("月:");</p><p> int month = Convert.ToInt32(Console.ReadLine());</p><p> Console.Write("日:");</p><p> int day = Convert.ToInt32(Console.ReadLine());</p><p> string weekday = GetWeekday(day, month, year); // 假设此函数返回星期几的字符串</p><p> Console.WriteLine($"星期是: {weekday} ");</p><p> break;</p><p>case 2:</p><p> Console.WriteLine("请输入要判断的年份:");</p><p> int m = Convert.ToInt32(Console.ReadLine());</p><p> if (IsLeapYear(m) == 1) // 假设IsLeapYear函数返回1表示是闰年,否则不是闰年</p><p> Console.WriteLine($"{m}年是闰年");</p><p> else</p><p> Console.WriteLine($"{m}年不是闰年,请重新输入");</p><p> break;</p><p>case 3:</p><p> Console.WriteLine("请输入月份:");</p><p> int m_month = Convert.ToInt32(Console.ReadLine());</p><p> GetMonthDays(m_month); // 假设此函数返回该月的总天数并输出结果</p><p> break;</p><p>case 4:</p><p> Console.WriteLine("请输入要打印的年份:");</p><p> int year_print = Convert.ToInt32(Console.ReadLine());</p><p> PrintYearCalendar(year_print); // 假设此函数打印该年的日历并输出结果</p><p> break;</p><p>case 5:</p><p> Console.WriteLine("请输入年份:");</p><p> int n_year = Convert.ToInt32(Console.ReadLine());</p><p> Console.WriteLine("请输入月份:");</p><p> int n_month = Convert.ToInt32(Console.ReadLine());</p><p> PrintMonthCalendar(n_year, n_month); // 假设此函数打印该年该月的月历并输出结果</p><p> break;</p><p>case 6: // 退出程序无需特别处理,因为系统将自动结束当前进程的运作。所以这里不写任何代码。但为了保持格式,我们仍然使用break关键字。</p><p> break; // 这里不需要执行任何操作,直接退出switch语句和程序。</p><p>

以上代码中,我使用了C#语言和Console类来模拟了原代码中的功能,并假设了几个函数的实现(如GetWeekdayIsLeapYearGetMonthDaysPrintYearCalendar),但具体的实现代码需要根据具体业务逻辑编写。原代码中涉及到多个不同功能(如查询日期、判断闰年等)的具体实现并没有详细说明,所以在此也仅提供了一个基本的框架供你参考。实际使用时需要根据你的具体需求和逻辑来编写相应的函数。

小讯
上一篇 2025-04-28 20:51
下一篇 2025-04-22 19:29

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/174795.html