截取字符串日期,获取字符串日期上个月,等处理问题

截取字符串日期,获取字符串日期上个月,等处理问题,第1张

先把string类型的date转换成DateTime:

DateTime newDate=DateTimeparse(date);

然后:

1、string first=newDateAddMonths(-1)ToString("yyyyMM");

2、string second=newDateToString("yyyyMM");

3、string thirdly=newDateToString("yyyy/MM/dd");

重点是了解一下DateTime这个结构,很多方法用起来很方便的。

多看MSDN:>

import javatextSimpleDateFormat;

import javautilCalendar;

import javautilDate;

public class Main {

private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

public static void main(String args[]) {

Date d = new Date();

// 月初

Systemoutprintln("月初" + sdfformat(getMonthStart(d)));

// 月末

Systemoutprintln("月末" + sdfformat(getMonthEnd(d)));

Date date = getMonthStart(d);

Date monthEnd = getMonthEnd(d);

while (!dateafter(monthEnd)) {

Systemoutprintln(sdfformat(date));

date = getNext(date);

}

}

private static Date getMonthStart(Date date) {

Calendar calendar = CalendargetInstance();

calendarsetTime(date);

int index = calendarget(CalendarDAY_OF_MONTH);

calendaradd(CalendarDATE, (1 - index));

return calendargetTime();

}

private static Date getMonthEnd(Date date) {

Calendar calendar = CalendargetInstance();

calendarsetTime(date);

calendaradd(CalendarMONTH, 1);

int index = calendarget(CalendarDAY_OF_MONTH);

calendaradd(CalendarDATE, (-index));

return calendargetTime();

}

private static Date getNext(Date date) {

Calendar calendar = CalendargetInstance();

calendarsetTime(date);

calendaradd(CalendarDATE, 1);

return calendargetTime();

}

}

这是一个月的 你改改就能写出上个月的了吧

DateTime dt = DateTimeNow; //当前时间

DateTime startWeek = dtAddDays(1 - ConvertToInt32(dtDayOfWeekToString("d"))); //本周周一

DateTime endWeek = startWeekAddDays(6); //本周周日

DateTime startMonth = dtAddDays(1 - dtDay); //本月月初

DateTime endMonth = startMonthAddMonths(1)AddDays(-1); //本月月末

//DateTime endMonth = startMonthAddDays((dtAddMonths(1) - dt)Days - 1); //本月月末

DateTime startQuarter = dtAddMonths(0 - (dtMonth - 1) % 3)AddDays(1 - dtDay); //本季度初

DateTime endQuarter = startQuarterAddMonths(3)AddDays(-1); //本季度末

DateTime startYear = new DateTime(dtYear, 1, 1); //本年年初

DateTime endYear = new DateTime(dtYear, 12, 31); //本年年末

至于昨天、明天、上周、上月、上季度、上年度等等,只要AddDays()、AddMonths()、AddYears()这几种方法组合一下就可以了。

C#中datetime的使用

//如果你还不明白,再看一下中文显示星期几的方法就应该懂了

//由于DayOfWeek返回的是数字的星期几,我们要把它转换成汉字方便我们阅读,有些人可能会用switch来一个一个地对照,其实不用那么麻烦的

string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };

string week = Day[ConvertToInt32(DateTimeNowDayOfWeekToString("d"))]ToString();

//上周,同理,一个周是7天,上周就是本周再减去7天,下周也是一样

DateTimeNowAddDays(ConvertToInt32 (1 - ConvertToInt32(DateTimeNowDayOfWeek)) - 7); //上周一

DateTimeNowAddDays(ConvertToInt32 (1 - ConvertToInt32(DateTimeNowDayOfWeek)) - 7)AddDays(6); //上周末(星期日)

//下周

DateTimeNowAddDays(ConvertToInt32 (1 - ConvertToInt32(DateTimeNowDayOfWeek)) + 7); //下周一

DateTimeNowAddDays(ConvertToInt32(1 - ConvertToInt32(DateTimeNowDayOfWeek)) + 7)AddDays(6); //下周末

//本月,很多人都会说本月的第一天嘛肯定是1号,最后一天就是下个月一号再减一天。当然这是对的

//一般的写法

DateTimeNowYearToString() + DateTimeNowMonthToString() + "1"; //第一天

DateTimeParse(DateTimeNowYearToString() + DateTimeNowMonthToString() + "1")AddMonths(1)AddDays(-1)ToShortDateString();//最后一天

//巧用C#里ToString的字符格式化更简便

DateTimeNowToString("yyyy-MM-01");

DateTimeParse(DateTimeNowToString("yyyy-MM-01"))AddMonths(1)AddDays(-1)ToShortDateString();

//上个月,减去一个月份

DateTimeParse(DateTimeNowToString("yyyy-MM-01"))AddMonths(-1)ToShortDateString();

DateTimeParse(DateTimeNowToString("yyyy-MM-01"))AddDays(-1)ToShortDateString();

//下个月,加去一个月份

DateTimeParse(DateTimeNowToString("yyyy-MM-01"))AddMonths(1)ToShortDateString();

DateTimeParse(DateTimeNowToString("yyyy-MM-01"))AddMonths(2)AddDays(-1)ToShortDateString();

//7天后

DateTimeNowDateToShortDateString();

DateTimeNowAddDays(7)ToShortDateString();

//7天前

DateTimeNowAddDays(-7)ToShortDateString();

DateTimeNowDateToShortDateString();

//本年度,用ToString的字符格式化我们也很容易地算出本年度的第一天和最后一天

DateTimeParse(DateTimeNowToString("yyyy-01-01"))ToShortDateString();

DateTimeParse(DateTimeNowToString("yyyy-01-01"))AddYears(1)AddDays(-1)ToShortDateString();

//上年度,不用再解释了吧

DateTimeParse(DateTimeNowToString("yyyy-01-01"))AddYears(-1)ToShortDateString();

DateTimeParse(DateTimeNowToString("yyyy-01-01"))AddDays(-1)ToShortDateString();

//下年度

DateTimeParse(DateTimeNowToString("yyyy-01-01"))AddYears(1)ToShortDateString();

DateTimeParse(DateTimeNowToString("yyyy-01-01"))AddYears(2)AddDays(-1)ToShortDateString();

//本季度,很多人都会觉得这里难点,需要写个长长的过程来判断。其实不用的,我们都知道一年四个季度,一个季度三个月

//首先我们先把日期推到本季度第一个月,然后这个月的第一天就是本季度的第一天了

DateTimeNowAddMonths(0 - ((DateTimeNowMonth - 1) % 3))AddDays(1 - DateTimeNowDay);

//同理,本季度的最后一天就是下季度的第一天减一

DateTimeParse(DateTimeNowAddMonths(3 - ((DateTimeNowMonth - 1) % 3))ToString("yyyy-MM-01"))AddDays(-1)ToShortDateString();

//下季度,相信你们都知道了。。。。收工

DateTimeNowAddMonths(3 - ((DateTimeNowMonth - 1) % 3))ToString("yyyy-MM-01");

DateTimeParse(DateTimeNowAddMonths(6 - ((DateTimeNowMonth - 1) % 3))ToString("yyyy-MM-01"))AddDays(-1)ToShortDateString();

//上季度

DateTimeNowAddMonths(-3 - ((DateTimeNowMonth - 1) % 3)) AddDays(1 - DateTimeNow);

DateTimeNowAddMonths(0 - ((DateTimeNowMonth - 1) % 3))AddDays(1 - DateTimeNowDay)AddDays(-1)ToShortDateString();

编写脚本getdatesh:

[plain] view plain copy

#! /bin/sh

nowdate=`date +%Y%m01` #本月第一天

startdate=`date -d"$nowdate last month" +%Y%m%d` #上个月第一天

enddate=`date -d"$nowdate last day" +%Y%m%d` #上个月最后一天

#遍历上个月的每一天

while (( $startdate <= $enddate ))

do

echo $startdate

startdate=`date -d "+1 day $startdate" +%Y%m%d`

/

获得上个月月份

/

public static String getLastMouth(){

SimpleDateFormat sdf=new SimpleDateFormat("yyyyMM");

Calendar calendar=CalendargetInstance();

//calendarset(2010,5,0);

calendarsetTime(new Date());

//calendaradd(CalendarMONTH, -1);

//取得上一个月时间

calendarset(CalendarMONTH,calendarget(CalendarMONTH)-1);

String lastMonth= sdfformat(calendargetTime());

return lastMonth;

}

最好一天自己百度下

//取得系统当前时间

Calendar cal = CalendargetInstance();

//取得系统当前时间所在月第一天时间对象

calset(CalendarDAY_OF_MONTH, 1);

//日期减一,取得上月最后一天时间对象

caladd(CalendarDAY_OF_MONTH, -1);

//输出上月最后一天日期

Systemoutprintln(calget(CalendarDAY_OF_MONTH));

@echo off

title 获取上月日期 By HiSen QQ:185867604

echo 正在获取中。。。。

setlocal enabledelayedexpansion

set mm=%date:~0,7%

set _mm=%mm:-=%

set nn=%_mm:~-2%

if %nn% neq 10 set _nn=%nn:0=% &goto two

set _nn=%nn%

:two

set /a xx=%_nn%-1

set yy=%_mm:~0,4%

set _yy=%yy: =%

if %xx% equ 0 (

set /a m=%_yy%-1

echo !m!12>syrqdat

) else (

set _xx=00!xx!

echo %yy%!_xx:~-2!

)

endlocal

pause

以上就是关于截取字符串日期,获取字符串日期上个月,等处理问题全部的内容,包括:截取字符串日期,获取字符串日期上个月,等处理问题、java 怎样根据选择的日期月份得到其上一个日期月份、java 根据日期获取当月所有日期,和 上个月所有日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9599560.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存