首页 > 其他分享 >输入日期显示星期几

输入日期显示星期几

时间:2024-03-21 11:25:05浏览次数:18  
标签:星期 return int printf month 日期 year day 输入

#include <stdio.h>
#include <stdlib.h>

int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 1; // 是闰年
} else {
return 0; // 不是闰年
}
}

int getDaysInMonth(int year, int month) {
if (month == 2) {
return isLeapYear(year) ? 29 : 28;
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
return 30;
} else {
return 31;
}
}

int getWeekday(int y, int m, int d) {
if (m == 1 || m == 2) {
m += 12;
y--;
}
return (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;
}

int main() {
int year, month, day;

printf("请输入年份:");
while (scanf("%d", &year) != 1 || year < 0 || getchar() != '\n') {
printf("请输入正确的数字\n");
while (getchar() != '\n');
printf("请输入年份:");
}

printf("请输入月份:");
while (scanf("%d", &month) != 1 || month < 1 || month > 12 || getchar() != '\n') {
printf("请输入正确的数字\n");
while (getchar() != '\n');
printf("请输入月份:");
}

printf("请输入日期:");
while (scanf("%d", &day) != 1 || day < 1 || day > getDaysInMonth(year, month) || getchar() != '\n') {
printf("请输入正确的数字\n");
while (getchar() != '\n');
printf("请输入日期:");
}

int weekday = getWeekday(year, month, day) + 1;
if (weekday != 7) {
printf("%d年%d月%d日是星期%d\n", year, month, day, weekday);
} else {
printf("%d年%d月%d日是星期日\n", year, month, day);
}

return 0;
}

标签:星期,return,int,printf,month,日期,year,day,输入
From: https://www.cnblogs.com/yangkaiwen/p/18086956

相关文章

  • 复试C++15真题_程序设计2_递归_输入字符串倒序转整形
    编写一个递归函数,功能为:输入一个字符串,输出一个整数值。例如输入 "1a2xcz34,5a!6" , 输出654321。一开始想不明白怎么写递归,于是我写了迭代的函数。意识到,递归的过程就是实现了迭代的循环,而循环内的操作本质没有太大差别。于是就写出来了:#include<iostream>usingnam......
  • 定义日期格式自动补零
     //定义日期格式DateTimeFormatterformatter=newDateTimeFormatterBuilder().appendPattern("yyyy-M-d").parseDefaulting(ChronoField.MONTH_OF_YEAR,1).parseDefaulting(ChronoField.DAY_OF_MONTH,1).toFormatter();//将List&......
  • 解决el-input无法输入的问题和表单验证失败问题
    el-input无法输入的问题和表单验证失败问题原因1、el-input组件没有绑定双向响应式数据(v-model)解决方案:在data中定义一个变量,然后在el-input组件中使用v-model进行双向数据绑定,这样子就会解决el-input组件无法输入的问题了。原因2、组件嵌套太深(具体原因不清楚,只知......
  • QlineEdit输入字符奇怪自动补全上一次字符而且交叉影响
    做一个名称校验的函数,不能输入特殊字符;SlotTextChanged函数作用是判断是否包含特殊字符,有的话,弹出提示,删除特殊字符之后,在设置回去;发现输入/之后,弹出模态提示,自动删除后,在右侧车牌号码输入框中输入任意字符a会自动变成/a;是模态对话框打断了变化消息,当在右侧输入字符时,触发了消息......
  • element plus DateTimePicker控件选择日期不选时间,默认是0点,但是获取到的时间不一致
    只选择日期,未选择时间,应默认是0点 保存入库后时间变为16点 查看官方文档后,给控件设置这个属性即可value-format="YYYY-MM-DDHH:mm:ss" ......
  • 【SQL Server】超详细SQLServer日期转换、字符串、数学、聚合等常用函数大全(最新版)
    文章目录一、字符串函数1、获取uuid2、字符串截取3、字符串拼接4、字符串去空格5、大小写转换6、格式化数字为字符串7、字符串替换、转换8、查找与定位9、ISNULL判空取值二、日期时间函数1、获取当前日期和时间2、提取日期部分3、DATENAME(datepart,date_expr)函数,返......
  • 【CSP考点回顾】C++标准库加速输入输出
    C++标准库加速输入输出ios_base::sync_with_stdio(false);:取消C++标准库(iostream)与C标准库(stdio)之间的同步。默认情况下,为了保证C++的cin、cout与C的stdin、stdout能够互相交换数据,它们之间会进行同步。这样做虽然安全,但会减慢IO操作的速度,因为每次IO操作都需要进行同步。......
  • My97DatePicker日期插件WdatePicker.js的使用方法
    原文链接:https://blog.csdn.net/honghailiang888/article/details/51384929一、先来最简单的配置方法:(1)下载WdatePicker.js(包括lang和skin文件夹)。(2)在html页面中导入WdatePicker.js。//同时引入了WdatePicker.css文件(3)在输入框input元素上加入class="Wdate"onFocus="WdatePic......
  • vue element-ui prop 同时校验两个输入框都不能为空
    <el-row><el-col:span="24"><el-form-itemlabel="故障阈值:"class="a_row":prop="addForm.thresholdFaultMin.length==0?'thresholdFaultMin':'thresholdFaultMax&#......
  • 可编辑表格中的两个列分别是用react-hook-form 和antd的inputNumber实现的,需要在开始
    可编辑表格中的两个列分别是用react-hook-form和antd的inputNumber实现的,需要在开始时间的列输入后失焦时,或者按enter键,鼠标聚焦到下一列,即结束时间,该如何设置在React项目中,要实现在一个可编辑表格中,当开始时间列输入后失焦或按下Enter键时,自动将焦点切换至结束时间列,你可以结合......