万年历实现

news/2025/1/31 5:37:29/
#include<stdio.h>
int leapyear(int y);
int getmonth(int y, int m);
int totalday(int y, int m);
int startday(int y, int m);
void calendar(int y, int m);
void title(int y, int m);/*计算是否是闰年*/
int leapyear(int y)
{if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))return 1;elsereturn 0;
}/*计算输入的年月天数*/
int getmonth(int y, int m)
{int days;if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)days = 31;if (m == 4 || m == 6 || m == 9 || m == 11)days = 30;if (m == 2){if (leapyear(y) == 1)days = 29;elsedays = 28;}return days;
}/*计算输入的年月天数距1900.1.1的相隔天数*/
int totalday(int y, int m)
{int totaldays = 0;int i;for (i = 1900; i < y; i++)//不计入输入年份的天数if (leapyear(i) == 1)totaldays += 366;elsetotaldays += 365;for (i = 1; i < m; i++)//不计算输入月份的天数totaldays += getmonth(y, i);return totaldays;
}/*确定输入月份的第一天是周几*/
int startday(int y, int m)
{int startdays;startdays = (1 + totalday(y, m)) % 7;//若取1900.1.1则天数为0而取到0(周天)所以应该+1(周一)return startdays;
}/*打印日历*/
void calendar(int y, int m)
{int dayss;int start;int i;dayss = getmonth(y, m);start = startday(y, m);for (i = 0; i < start; i++)//打印此月第一天前的空格printf("    ");for (i = 1; i <= dayss; i++)//打印此月的天数{printf("%4d", i);start++;if (start % 7 == 0)printf("\n");}printf("\n-----------------------------\n");
}/*打印日历标题*/
void title(int y, int m)
{printf("\n\t%d年%d月\n", y, m);printf("-----------------------------\n");printf("%4s%4s%4s%4s%4s%4s%4s\n", "日", "一", "二", "三", "四", "五", "六");
}/*主函数*/
int main()
{int y, m;int flag = 1;printf("----------");printf("   万年历   ");printf("----------");printf("\n1.万年历\n");printf("0.退出\n");do{printf("请选择:");scanf("%d", &flag);if (flag == 1){printf("\n请输入年份(1900后):");scanf("%d", &y);printf("请输入月份:");scanf("%d", &m);title(y, m);//标题calendar(y, m);//内容}else break;} while (flag == 1);//为假时退出return 0;      
}


http://www.ppmy.cn/news/371160.html

相关文章

创建万年历

问题&#xff1a;跟据用户输入的年份和月份&#xff0c;输出月份的每一天&#xff0c;并按日历格式&#xff0c;显示天数和星期数。 import java.util.Calendar; import java.util.Scanner;public class Test3 {public static void main(String[] args) {//创建扫描器对象Scan…

万年历、日历——拿来即用(简单易上手,操作方便)

前段时间用到了搞出来了&#xff0c;所以就和大家分享一下&#xff0c;上成果。 整个日历结构还是比较简单的&#xff0c;注释啥的都给大哥们整好了&#xff0c;都是手写的静态数据请放心食用&#xff0c;效果图呈上&#xff01; HTML代码&#xff1a; <!DOCTYPE html>…

万年历的实现

首先知道具体要实现的功能 实现选择不同年月&#xff0c;实现日历的效果 一.html代码 <div id"calendar"><div id"top"><!-- onchange事件&#xff0c;当用户改变input属性时&#xff0c;执行一段js代码 --><select id"year&…

打印万年历

1.从键盘输入年份月份 Scanner input new Scanner(System.in);System.out.println("请输入年份: ");int year input.nextInt();//键盘输入年份Scanner inpt new Scanner(System.in);System.out.println("请输入月份: ");int month input.nextInt();//键…

万年历!(日历)

此万年历有三点功能 1.显示某一年的日历 2.显示某年中某个月的日历 3.显示某年某月某天是星期几 下面贴上蒟蒻的代码 #include <iostream> #include <iomanip> using namespace std; int key,year,month,day,xingqi,num[15]{0,31,28,31,30,31,30,31,31,30,31,30,31…

万年历代码

public class Demo03 { //获取每年首日周几 public static int kalendar(int year, int month) { Calendar calendar Calendar.getInstance(); calendar.set(year,0,1,0,0,0); Date date calendar.getTime(); long atYear date.getTime(); int weekday ((year - 1970)*365le…

免费软件 --- 国信证券帐户历史成交统计器

很早之前就想写这个软件&#xff0c;这2天花费了点时间写出来了&#xff0c;测试后就发布了。当然了&#xff0c;本软件只针对国信证券而开发的&#xff0c;只支持统计国信证券交易软件的记录。如果是其他券商开户的&#xff0c;请不要来下载了。 软件简要说明&#xff1a;本软…

android农历日历,万年历农历日历app

万年历农历日历app是为广大手机用户精心准备的一款手机日历应用软件&#xff0c;万年历农历日历app能为你提供最准确的农历时间&#xff0c;让你能够方便快捷的安排自己的事情&#xff0c;是一款功能十分强大的手机应用软件&#xff0c;有需要的朋友们欢迎前来下载使用&#xf…