制作简单日历
来源:互联网 发布:2016禁毒知识网络大赛 编辑:程序博客网 时间:2024/05/23 16:56
你想知道某年某月某日是星期几吗?
当然,现在的我们借助手机和电脑都能轻松搞定这个问题,
但好奇的你想不想知道其中的奥妙呢?
下面就让我们用java语言一步一步实现!
思路:
核心:1900年1月1日到2016年8月1日的总天数模7得到的余数是几就是星期几,是0为星期日。
1,创建扫描仪
2,提示用户输入年份和月份并用变量接收
3,判断用户输入的年份是闰年还是平年,月份是大月还是小月
4,定义变量sum,计算总天数
a,计算整年的天数,从1900年到用户输入年份的前一年,如果是闰年sum加上366天,否则加上365天
b,计算整月的天数,从1月份到用户输入月份的前一个月,首先判断是否为二月份,如果是再判断是否为闰年,闰年29天,否则是 28天;其次再根据大月和小月分别加上31天或者30天。
c,最后加1,因为要求某月的第一天是星期几,所以必须要加上。
5,求总天数模7的值,并根据值得大小求得某月1日是星期几。
6,求用户输入的月份的天数。
7,遍历星期,并在星期六处换行。
代码如下:
package Ch1;
import java.util.Scanner;
public class T1 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("请输入年份:");
int year=input.nextInt();
System.out.println("请输入月份:");
int month=input.nextInt();
boolean isLeapYear=year%4==0&&year%100!=00||year%400==0;
boolean isSmallMonth=month==4||month==6||month==9||month==11;
int sum=0;
for (int i = 1900; i < year; i++) {
if (i%4==0&&i%100!=0||i%400==0) {
sum+=366;
}else{
sum+=365;
}
}
for (int y = 1; y < month; y++) {
if (y==2) {
if (isLeapYear) {
sum+=29;
}else{
sum+=28;
}
}else{
if (y==4||y==6||y==9||y==11) {
sum+=30;
}else{
sum+=31;
}
}
}
sum+=1;
int weekday=sum%7;
System.out.println("日\t一\t二\t三\t四\t五\t六");
for (int i = 0; i < weekday; i++) {
System.out.print("\t");
}
int monthDay=0;
if(month==2){
if (isLeapYear) {
monthDay=29;
}else
monthDay=28;
}else{
if (isSmallMonth) {
monthDay=30;
}else
monthDay=31;
}
for (int i = 1; i <=monthDay; i++) {
if (sum%7==6) {
System.out.print(i+"\n");
}else{
System.out.print(i+"\t");
}
sum++;
}
}
}
- java制作简单日历
- 制作简单日历
- 制作简单日历
- 简单日历的制作
- 制作简单的日历
- js制作日历1----------简单的日历
- 230_制作简单日历
- iOS 简单日历制作
- 简单日历的制作 java
- 在jsp中制作简单的日历
- jquery制作一个简单的日历
- ios 制作最简单的日历 NSCalendar
- 常用类日期处理、简单日历制作
- 日历制作
- 日历制作
- 制作日历
- ios NSDate,NSCalendar,制作日历简单实用的方法
- NSDate,NSCalendar,制作日历简单实用的方法
- 【机器学习】反向传播神经网络推导
- poj2503 -Map
- Mac上安装CocoaPods
- Android-几行代码通知系统自动安装apk
- 去掉UISegmentedControl的边框颜色
- 制作简单日历
- 【代码积累】Binding的常用写法
- Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法
- C语言 条件编译 总结使用
- 超实用的——BAT面试技巧
- Android自定义View之(下拉刷新+侧滑删除)
- ubuntu上部署tomcat7的注意事项
- EAVB 下一代汽车音视频传输技术(一)
- Apache Mina学习笔记(一)